2

我有这块 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是我最好的猜测,但不起作用。

4

2 回答 2

4

您可以使用以下内容:

xml.at('//show/@name').text

这是从元素返回name属性的XPath 表达式。show

于 2012-10-30T20:45:19.693 回答
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_cssor 。返回一个节点,因此您可以像引用哈希一样简单地引用节点的参数。at_xpathat

于 2012-10-30T15:41:33.050 回答