Фильтруйте элементы XML по значению атрибута с помощью Nokogiri и Xpath - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть служба rails, которая читает XML с конечной точки SOAP.Упрощенная структура выглядит так:

<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>

Я анализирую информацию, используя гем Nokogiri, который, я думаю, использует xpath.Я хотел бы отфильтровать все цены прошлого года.Я пытаюсь сделать

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

, но это не работает.

1 Ответ

0 голосов
/ 20 февраля 2019

Вы можете преобразовать строку даты в число следующим образом, а затем сравнить:

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