0

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

返回父元素 (<key>),它的 var 元素的 name 属性等于“id”且值等于 50,并且 var 元素的 name 属性等于“secondaryid”且值等于 0。不返回id=50 和 secondaryid=1 的节点。

显然,它将建立在以下方面:

@doc.xpath("//var[@name='id' and text()=50]")

但我不知道如何添加另一个与 name = "secondaryid" 元素匹配的谓词。

4

2 回答 2

0

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

//key[var[@name='id'] = '50'][var[@name='secondaryid'] = '0']
于 2012-04-25T09:58:41.010 回答
0

另一种方法:

subelement/key
  [var[@name="id" and . = "50"]]
  [var[@name="secondaryid" and . = "0"]]
于 2012-04-25T10:42:49.477 回答