2009-11-24 68 views
1

我有一個非常簡單的xml文檔(從html表中提取)和一個非常簡單的Nokogiri腳本,但是對於某些原因,我無法從xml節點中獲取文本。我可以獲取屬性,但不能獲取文本/內容。任何人都有任何想法可能是什麼錯以下?Nokogiri :: XML :: Reader似乎無法識別'content'或'text'方法

這裏的XML:

<?xml version="1.0" encoding="UTF-8"?> 
<table class="renderedtable" border="1" cellpadding="2" cellspacing="0" width="100%"> 
    <tr> 
    <th valign="top"> 
    <p class="MsoNormal"> AIR CONDITIONING, VENTILATION &amp; HEATING</p> 
    </th> 
    </tr> 
</table> 

而且在世界上提出了一個 「未定義的方法 '內容'」

require 'nokogiri' 

a = IO.read('services_table.xml') 

reader = Nokogiri::XML::Reader(a) 

reader.each do |node| 

    if node.name == 'p' 

    @category = node.content 

    end 
end 

回答

3

嘗試

reader.each { |node| 
    p node.inner_xml if node.name=="p" 
} 

Nokogiri.eachNokogiri::XML::Reader回報的情況下,不Nokogiri::XML::Node

+0

多田!謝謝先生(或女士)Kirushik。 – btelles 2009-11-24 15:25:07

+0

Mr. Kirushik來自Kirill(Кирилл) - 它是俄羅斯男性的常用名字。這兩個名字在Firefox中仍然是強調的;這給了我一個關於在國外的某些地方不常用名稱的提示。 不客氣。 – kirushik 2009-11-26 11:41:53

+0

謝謝,這很好。但我很好奇,爲什麼這不是在文檔中? – Bob 2010-03-26 06:17:06

0

編輯簡單的腳本:得到檢查Nokogiri doc。與node.methods你會看到有一個名爲value的方法,它似乎是一個使用,而不是content

+0

沒有骰子。 Value返回nil: -/... yup,我嘗試了node.methods.sort,查看了所有可用的並嘗試了一堆。 – btelles 2009-11-24 15:22:09