【发布时间】:2012-05-15 15:33:21
【问题描述】:
我在这方面看到了几件事,但到目前为止似乎没有任何效果。我正在使用 rails 3 ruby 1.9.2 上的 nokogiri 通过 url 解析 xml。
xml 的 sn-p 如下所示:
<NewsLineText>
<![CDATA[
Anna Kendrick is ''obsessed'' with 'Game of Thrones' and loves to cook, particularly creme brulee.
]]>
</NewsLineText>
我正在尝试解析它以获取与 NewsLineText 关联的文本
r = node.at_xpath('.//newslinetext') if node.at_xpath('.//newslinetext')
s = node.at_xpath('.//newslinetext').text if node.at_xpath('.//newslinetext')
t = node.at_xpath('.//newslinetext').content if node.at_xpath('.//newslinetext')
puts r
puts s ? if s.blank? 'NOTHING' : s
puts t ? if t.blank? 'NOTHING' : t
我得到的回报是
<newslinetext></newslinetext>
NOTHING
NOTHING
所以我知道我的标签被正确命名/拼写以获取新闻行文本数据,但 cdata 文本从未出现。
我需要对 nokogiri 做什么才能获得此文本?
【问题讨论】:
-
看你的情况,我相信 nokogiri 会小写 html 名称而不是 xml
-
@pguardiario:Aaron 使用的是 Nokogiri 的 HTML 解析器,而不是它的 XML 解析器。
-
你说的都对。我无意中使用了强制我使用小写字母的 HTML 解析器。然后当我尝试使用 XML 解析器时,我没有得到任何结果(因为我已经使用了小写字母)。看到这里的答案后,我意识到我的白痴并切换到区分大小写和 XML。完美运行。谢谢
标签: ruby ruby-on-rails-3.1 xml-parsing nokogiri cdata