解析EPUB檔案-以愛麗絲夢遊仙境為例
我們將愛麗絲夢遊仙境的EPUB檔案解壓縮後,可以發現有以下內容:
\META-INF (資料夾) \OEBPS (資料夾) mimetype (檔案) 圖3-1 EPUB拆解後內容
1.mimetype 宣告為EPUB檔案,一定要有,需放置於ZIP檔的根目錄中。內容如下:
application/epub+zip
2.\META-IN\container.xml 閱讀器會先讀取本檔案,它用在定義中繼資料路徑,從中可以得知 content.opf 位置。
3.\OEBPS 目錄中包含所有的閱讀檔案及宣告文件。
4.\OEBPS\content.opf opf是最重要的檔案,閱讀器可以得知 EPUB 內所有的檔案清單與格式,告訴閱讀器書籍資料、內容、章節順序等。
(1) metadata : 書籍資料 出版品的Metadata(標題、作者、出版者),如: title 書名 creator 作者 identifier 標識符號 language 使用語言 date 出版日期 publisher 出版者 rights 版權
(2)mainfest : 文件列表 組成出版品的檔案(文件、圖像、樣式表等),名稱位置(item)、代號(id)、型態(media-type)均在此加以描述。列出了 EPUB 內容(不包括中繼資料)中的所有檔案資源。通常是組成電子圖書文本的一組 XHTML 檔再加上一些相關的媒體如圖像。EPUB 鼓勵使用 CSS 設定圖書內容的樣式,因此 manifest 中也包含 CSS。EPUB中的所有檔案都必須在 manifest 中列出。
(3)spine : 閱覽順序 文件的編排,提供線性的閱讀次序。指定這些檔案出現的順序,也就是章節的讀取順序,按照文檔順序從上到下依次讀取。
(4)guide : 導引指南 一套出版品基本架構特性的參考資料,例如目錄、前言、參考書目等。為 EPUB 閱讀器提供語義資訊。
5.\OEBPS\toc.ncx NCX 是EPUB2.0 中定義 EPUB 的目錄表,協助導航閱讀。目錄表通常採用層次結構,包括章和節等。
NCX navMap navMap 是 NCX 檔中最重要的部分,定義了EPUB的目錄。navMap 包含一個或多個 navPoint 元素藉以將每個章節包起來。每個 navPoint 就是一個章節,每個 navPoint 都要包含下列元素:
(1)playOrder 屬性,說明文檔的讀取順序。和 OPF spine 中 itemref 元素的順序相同。
(2)navLabel/text 目錄上顯示的元素,顯示該章節的標題。通常是章的標題或者數字,如 “第一章”,或者 — 像這個例子一樣 — “封面”。
(3)content 元素,它的 src 指向包含這些內容的檔案資源。就是 OPF manifest 中聲明的檔(也可使用片段識別字引用 XHTML 內容中的錨元素 — 比如 content.html#footnote1)。
EPUB 內容結構為html,和上述資料憶起打包壓縮成ZIP,再轉為EPUB。因此當 EPUB 檔案出現問題時,可以透過解壓縮後來解析檔案內容進而找出問題。
資料來源: