通过带有Nokogiri和Xpath的属性值过滤XML元素

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

我有一个Rails服务,它从SOAP端点读取XML。简化的结构就像:

<resource id="1287085300000102889" ...>
  <prices>
   <price datefrom="2018-05-25" dateto="2018-05-26" price="0.0" currency="EUR"/>
   <price datefrom="2019-07-12" dateto="2019-07-13" price="1000.0" currency="EUR"/>

   <price datefrom="2020-05-23" dateto="2020-05-24" price="1540.0" currency="EUR"/>
   ...
  </prices>
</resource>

我正在使用我认为使用xpath的Nokogiri gem解析信息。我想过滤掉去年的所有价格。我正在尝试

prices = resource.xpath(".//prices/price[@dateto > '2019-01-01']")

但是它不起作用。

ruby xpath nokogiri
1个回答
0
投票

你可以将日期字符串转换为这样的数字然后比较:

prices = resource.xpath(".//prices/price[translate(@dateto, '-', '') > 20190101]")
© www.soinside.com 2019 - 2024. All rights reserved.