多个元素的XPath谓词组合

时间:2012-04-25 09:46:12

标签: xpath nokogiri predicate

使用ruby 1.9.3和Nokogiri(最新):

鉴于(不,我没有提出这个):

<root>
<subelement>
    <key>
          <var name="id">50</var>
          <var name="secondaryid">0</var>
     </key>
</subelement>
<subelement>
   <key>
          <var name="id">50</var>
          <var name="secondaryid">1</var>
   </key>
</subelement>
</root>

返回父元素(&lt; key&gt;),其中var元素的name属性等于“id”,值等于50 AND var元素,name属性等于“secondaryid”,值等于0 。不要返回id = 50且secondaryid = 1的节点。

显然,它会被建立起来的东西:

@ doc.xpath(“// var [@ name ='id'和text()= 50]”)

但我无法弄清楚如何添加另一个与name =“secondaryid”元素相匹配的谓词。

2 个答案:

答案 0 :(得分:0)

没有使用Ruby测试,但这应该可以解决问题。

//key[var[@name='id'] = '50'][var[@name='secondaryid'] = '0']

答案 1 :(得分:0)

另一种方法:

subelement/key
  [var[@name="id" and . = "50"]]
  [var[@name="secondaryid" and . = "0"]]