解析EPUB容器我有打算看看提取EPUB 文件中,找到OPF元數據文件的位置,並返回Ruby代碼。所述 路徑OPF文件(相對於EPUB的根目錄)被寫入到 在META-INF/container.xml中發現的XML文件。文件內容是 如下:使用Ruby和LibXNL
<?xml version="1.0"?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
<rootfiles>
<rootfile full-path="content.opf" media-type="application/oebps-package+xml"/>
</rootfiles>
</container>
我使用的libxml和XPath提取根文件路徑
。問題 是的libxml報道,我的XPath表達式是無效的。使用Python和LXML當同一 表達的作品。下面是我的代碼 的相關部分。
require 'libxml'
include LibXML
container = File.join("META-INF", "container.xml")
tree = XML::Document.file(container)
rootfile = tree.find_first("//{urn:oasis:names:tc:opendocument:xmlns:container}rootfile")['full-path']
任何建議將是最受歡迎的。
也許的libxml無法處理這樣一個默認的命名空間?如果你搜索'「// rootfile」'會發生什麼? – 2014-09-19 21:29:10
@Mathias它返回nil。 – 2014-09-19 21:45:15