我正在尝试从Digital Trends解析RSS提要。我无法获得属性。例如,我需要在<enclosure>
代码中获取图片的网址。
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>
我该怎么做?
答案 0 :(得分:1)
xml = Nokogiri::XML(...)
item = xml.xpath('//item')
item.at('enclosure')['url']
或
xml = Nokogiri::XML(...)
item = xml.xpath('//item')
item.at('enclosure').attr('url')
第一个示例返回一个String,第二个示例返回表示字符串值的Nokogiri::XML::Attr
实例。
当然,替换
Nokogiri::XML(...)
根据XML文档的来源进行适当的文档解析。
您可能需要阅读文章Searching an HTML / XML Document。更多详细信息也可在Nokogiri::XML::Node API文档中找到。
答案 1 :(得分:0)
尝试@doc.xpath("//enclosure")[0].attr("url")
,假设您已将文档加载到@doc
。
答案 2 :(得分:0)
试试这段代码:
require 'nokogiri'
doc = Nokogiri::HTML IO.read( 'file.xml' )
e = doc.css( 'enclosure' )
puts e.attr( 'url' )