1

好的,基本上我正在尝试使用 XPath 来查找“给定条件”的匹配项。基本上,使用以下 xml:

 <stuff1>
   <stuff2>abc</stuff2>
 </stuff1>
 <stuff3>
   <stuff4>abc</stuff4>
   <stuff5>true</stuff5>
 </stuff3>
 <stuff3>
   <stuff4>abc</stuff4>
   <stuff5>false</stuff5>
   <stuff6>extra stuff</stuff6>
 </stuff3>

我想做的是根据 stuff2==stuff4 选择与 stuff3 匹配的 stuff1,但同时也选择 stuff3 的“stuff5”值为 false,但不是 true。

我知道//stuff1[stuff2/text()=../stuff3/stuff4/text()]会选择与 stuff3 匹配的 stuff1,但是如何指定 stuff3 的 stuff5 值必须为 false?抱歉,如果这是基本的或在其他地方回答的,随机搜索似乎不容易揭示答案。谢谢你。

4

1 回答 1

2

你快到了,如果你只想匹配值为 falsestuff3的元素stuff5,你可以通过将谓词添加[stuff5/text()="false"]stuff3匹配中来做到这一点。

完整的 XPath 应该如下所示:

//stuff1[stuff2/text()=../stuff3[stuff5/text()="false"]/stuff4/text()]

于 2013-04-03T19:37:26.727 回答