在Nokogiri中找到嵌套密钥

Pol*_*ium 3 ruby ruby-on-rails nokogiri

我正在使用nokogiri获得以下节点:

  <Instrument id="161" code="648">
    <Parameter key="currency" value="USD"/>
    <Parameter key="calendar" value="JAN"/>
  </Instrument>
Run Code Online (Sandbox Code Playgroud)

这是一个Nokogiri::XML::NodeSet < Object.

我想得到价值 "USD"

我试过了: node.search 'Parameter[key=currency]'但我不知道如何检索实际值.

那么,我怎样才能得到"美元"的价值?

谢谢.

the*_*Man 5

由于指向节点很容易,所以您想要的并不完全清楚:

require 'nokogiri'

doc = Nokogiri::XML(<<EOT)
<xml>
  <Instrument id="161" code="648">
    <Parameter key="currency" value="USD"/>
    <Parameter key="calendar" value="JAN"/>
  </Instrument>
</xml>
EOT

doc.at('Parameter')['value'] # => "USD"
doc.search('Parameter').first['value'] # => "USD"
Run Code Online (Sandbox Code Playgroud)

at找到第一个匹配的节点,因此['value']检索该节点的value内容.

search找到所有匹配的节点,并first检索检索到的第一个节点,这就是做什么的at.