Nokogiri :: XML :: Reader似乎无法识别“内容”或“文本”方法

时间:2009-11-24 13:46:30

标签: xml ruby nokogiri

我有一个非常简单的xml doc(从html表中提取)和一个非常简单的Nokogiri脚本,但由于某种原因我无法从xml节点中获取文本。我可以获得属性,但不能获得文本/内容。任何人都知道以下可能出现的问题?

这是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

2 个答案:

答案 0 :(得分:3)

尝试

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

Nokogiri.each返回Nokogiri::XML::Reader的实例,而不是Nokogiri::XML::Node

答案 1 :(得分:0)

编辑:要检查Nokogiri doc。使用node.methods,您会看到有一个名为value的方法,它似乎是使用的方法,而不是content