如何使用Nokogiri和XPath获取特定的XML节点

问题描述 投票:0回答:2

我在XML中具有此结构:

<resource id="2023984310000103605" name="Rebelezza">
      <prices>
         <price datefrom="2019-10-31" dateto="2019-12-31" price="2690.0" currency="EUR" />
         <price datefrom="2020-01-01" dateto="2020-03-31" price="2690.0" currency="EUR" />
         <price datefrom="2020-03-31" dateto="2020-04-30" price="3200.0" currency="EUR" />
      </prices>                   
      <products>
         <product name="specific-product1">
            <prices>
               <price datefrom="2019-10-31" dateto="2019-12-31" price="2690.0" currency="EUR" />
               <price datefrom="2020-01-01" dateto="2020-03-31" price="2690.0" currency="EUR" />
               <price datefrom="2020-03-31" dateto="2020-04-30" price="3200.0" currency="EUR" />              
            </prices>
         </product>
      </products>
</resource>

如何使用XPath选择器仅获取资源下的价格,而又不获取产品内部的价格。

此刻,我有类似的东西:

resources = resourcesParsed.xpath("//resource")
for resource in resources do
  prices = resource.xpath(".//prices/price[number(translate(@dateto, '-', '')) >= 20190101]")
end

但是,我得到的价格既直接在资源要素下,又在产品之下。我对产品价格不感兴趣。

ruby xpath nokogiri
2个回答
1
投票
XPath的2个选项:

1
投票
我会这样:
© www.soinside.com 2019 - 2024. All rights reserved.