使用 Nokogiri 和 Xpath 按属性值过滤 XML 个元素

Filter XML elements by attribute value with Nokogiri and Xpath

我有一个 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']")

但它不起作用。

您可以像这样将日期字符串转换为数字,然后进行比较:

prices = resource.xpath(".//prices/price[translate(@dateto, '-', '') > 20190101]")