Ruby 如何使用Nokogiri解析XML文档?
我试图解析来自数字趋势的RSS提要。我无法获取属性。例如,我需要在Ruby 如何使用Nokogiri解析XML文档?,ruby,xml-parsing,nokogiri,Ruby,Xml Parsing,Nokogiri,我试图解析来自数字趋势的RSS提要。我无法获取属性。例如,我需要在标记中获取图像的URL XML文件是: <item> <title> Xbox One returns to Best Buy with five new holiday bundles </title> <link> http://www.digitaltrends.com/gaming/xbox-one-returns-best-buy-f
标记中获取图像的URL
XML文件是:
<item>
<title>
Xbox One returns to Best Buy with five new holiday bundles
</title>
<link>
http://www.digitaltrends.com/gaming/xbox-one-returns-best-buy-five-new-holiday- bundles/
</link>
<pubDate>Thu, 12 Dec 2013 23:59:20 +0000</pubDate>
<enclosure url="http://icdn7.digitaltrends.com/image/microsoft-xbox-one-review-system-v2-100x100-c.jpg" length="0" type="image/png"/>
</item>
Xbox One带着五个新的假日套餐重返百思买
http://www.digitaltrends.com/gaming/xbox-one-returns-best-buy-five-new-holiday- 捆/
2013年12月12日星期四23:59:20+0000
如何执行此操作?请尝试@doc.xpath(//附件”)[0].attr(“url”)
,假设您已将文档加载到@doc
中,请尝试以下代码:
require 'nokogiri'
doc = Nokogiri::HTML IO.read( 'file.xml' )
e = doc.css( 'enclosure' )
puts e.attr( 'url' )
或
第一个示例返回字符串,第二个示例返回表示字符串值的Nokogiri::XML::Attr
实例
当然,更换
Nokogiri::XML(...)
根据XML文档的源进行适当的文档解析
你可能想读这篇文章。API文档中还提供了更多详细信息。您尝试过什么?还是你希望我们为你写?详细介绍这一点,使之成为一项容易的工作。“询问代码的问题必须表明对正在解决的问题的最低理解。包括尝试的解决方案、为什么它们不起作用以及预期的结果。另请参见:“这是RSS。不要手动解析它。使用RSS解析器。根据我的经验,这基本上是重复的,即使是RSS解析器也不能解析真实世界的RSS,因为它是一个被滥用的规范。加入ATOM和RDF,它需要一个手动解析器。从一个罐装的开始,看看它是否有效,但是如果它在简单的提要之外失败了,不要感到惊讶。@theTinMan
需要“rubygems”
需要“nokogiri”
需要“openuri”
doc=nokogiri::XML(open('http://www.digitaltrends.com/feed/)doc.xpath(“//item”).每一个都在xpath('./title')。内容
pt.at xpath('./description')。内容
pt.at xpath('./description')。内容
pt.at xpath('./publidate')。内容
pt.at css('enclosure')
结束
小心项。在('enclosure')。第一个
at
返回单个节点,而不是节点集,并且节点没有first
方法<代码>项目。搜索('enclosure')。首先会起作用。我的错是,我最初使用了css
,后来改为at
。我修正了密码,谢谢。
xml = Nokogiri::XML(...)
item = xml.xpath('//item')
item.at('enclosure').attr('url')
Nokogiri::XML(...)