我試圖從Nokogiri的XML文件中獲取信息。我可以使用檢索文件使用Nokogiri和Rails從XML獲取數據的問題
f = File.open("/my/path/file.xml")
cac=Nokogiri::XML(f)
什麼是一個花哨的noko:文件。我行標籤定義如下
<z:row ...info..../>
像
<Nokogiri::XML::Element:0x217e7b8 name="z:row" attributes=[#<Nokogiri::XML::Attr:0x217e754 name="ID_Poblacio" value="3">
,並使用任我不能檢索行:
s=cac.at_xpath("/*/z:row") or
s=cac.at_xpath("//z:row") or
s=cac.at_xpath("//row") or
s=cac.at_xpath("z:row")...
也許我真的傻瓜,但我無法找出哪些可以成爲問題。
有沒有人會遇到這個問題?
在此先感謝。
P:S我試圖直接從bash粘貼我的cac文件,但一些更奇怪的格式發生,所以我把它從問題中刪除。如果任何人可以解釋如何做到這一點,我將不勝感激。
你可能需要註冊爲命名空間「Z」字頭。 你可以嘗試's = cac.at_xpath(「// xmlns:row」)'(Nokogori應該爲你註冊) 或's = cac.at_xpath(「// *:row」)'(如果你不關心名字空間)。 或者如果你是「懶惰的」,你可以調用'cac.remove_namespaces!',然後使用's = cac.at_xpath(「// row」)'。 但理想情況下,如果可以的話,您應該發佈您的XML文件, 或提取它的頭和名稱空間聲明)。 請參閱[本博客文章](http://biztech.sheprador.com/?p=74)和[Nokogiri doc](http://nokogiri.org/tutorials/searching_a_xml_html_document.html) –
給我們示例xml以幫助你.. –
我有同樣的問題,並與'.remove_namespaces!':) :)它沒有在我的情況有所不同 –