首页 > 解决方案 > 使用 xpath (Nokogiri) 解析特定路径

问题描述

我有一个从 SOAP 端点读取 XML 的 rails 服务。简化的结构如下:

<resource id="1287085300000102889" ...>
  <prices>
   <price datefrom="2018-05-25" dateto="2018-05-26" price="0.0" currency="EUR"/>
   <price datefrom="2020-05-23" dateto="2020-05-24" price="1540.0" currency="EUR"/>
   ...
  </prices>
  <products>
    <product name="product1">
      <prices>
        <price datefrom="2018-05-25" dateto="2018-05-26" price="0.0" currency="EUR"/>
        <price datefrom="2020-05-23" dateto="2020-05-24" price="1540.0" currency="EUR"/>
      </prices>
    </product>
  </products>
</resource>

我正在使用我认为使用 xpath 的 Nokogiri gem 解析信息。在上面的示例中,我正在使用resource.xpath(".//price")但这是处理所有价格。我只想解析“默认”价格节点内的价格,我不想处理每个产品内的价格。我该怎么做。

标签: rubyxpathnokogiri

解决方案


我认为您想要的 XPath 是.//resource/prices/price,但从您的问题中不清楚.您的路径中的上下文是什么。


推荐阅读