我正在嘗試使用xpath提取dc:title
元素。我可以使用以下代碼提取元數據。Nokogiri/Xpath名稱空間查詢
doc = <<END
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://www.idpf.org/2007/opf" version="2.0">
<metadata xmlns:dc="URI">
<dc:title>title text</dc:title>
</metadata>
</package>
END
doc = Nokogiri::XML(doc)
# Awesome this works!
puts '//xmlns:metadata'
puts doc.xpath('//xmlns:metadata')
# => <metadata xmlns:dc="URI"><dc:title>title text</dc:title></metadata>
正如你所看到的,上述內容看起來工作正常。不過,我似乎無法從此節點樹中獲取標題信息,但以下所有內容均失敗。
puts doc.xpath('//xmlns:metadata/title')
# => nil
puts doc.xpath('//xmlns:metadata/dc:title')
# => ERROR: `evaluate': Undefined namespace prefix
puts doc.xpath('//xmlns:dc:title')
# => ERROR: 'evaluate': Invalid expression: //xmlns:dc:title
是否有人可以解釋如何使用上述xml文檔在xpath中使用名稱空間。
似乎沒有工作doc.xpath('/ */opf:元數據/ dc:標題')#=>「評估」:未定義的命名空間前綴「 – Jamie 2011-01-14 12:30:28
@Jamie:你真的讀過答案嗎?第一句話開始*「有正確註冊的前綴」* ... – 2011-01-14 12:39:49