我有这块XML:
<show name="Are We There Yet?">
<sid>24588</sid>
<network>TBS</network>
<title>The Kwandanegaba Children's Fund Episode</title>
<ep>03x31</ep>
<link>
http://www.tvrage.com/shows/id-24588/episodes/1065228407
</link>
</show>
我想说“我们还在吗?”通过Nokogiri。它实际上是'show'的'name'属性。我正在努力弄清楚如何解析这个问题。
xml.at_css('show').value
是我最好的猜测,但不起作用。
答案 0 :(得分:4)
您可以使用以下内容:
xml.at('//show/@name').text
这是从name
元素返回show
属性的XPath表达式。
答案 1 :(得分:3)
使用:
require 'nokogiri'
xml =<<EOT
<show name="Are We There Yet?">
<sid>24588</sid>
<network>TBS</network>
<title>The Kwandanegaba Children's Fund Episode</title>
<ep>03x31</ep>
<link>
http://www.tvrage.com/shows/id-24588/episodes/1065228407
</link>
</show>
EOT
xml = Nokogiri::XML(xml)
puts xml.at('show')['name']
=> Are We There Yet?
at
接受CSS或XPath表达式,因此可以随意使用它们。如果您知道需要分别将表达式声明为CSS或XPath,请使用at_css
或at_xpath
。 at
返回一个节点,因此您可以像散列一样简单地引用节点的参数。