如何使用 Xpath 定位一个父元素,其中多个子元素都不包含属性值列表中的特定属性值?
这是我的 xml 示例:
<app>
<rdg wit="#R #W #I #S #C #O #D">existunt,</rdg>
<rdg wit="#J">existant,</rdg>
</app>
我的 XML 有数百个这样的元素,它们都应该具有相同的一组八个属性值(#R 等),并以不同的方式分布在两个或多个元素中。但是其中一些缺少列表中的属性值,我需要找到这些节点。
所以我试图找到所有 <app>
没有 child 的元素 <rdg>
元素 包含#R。
我可以用 //app/rdg[contains(@wit,"#R")]
得到那些确实包含#R 的我知道有一个 not() 函数,但我还不知道如何让它们协同工作。
最佳答案
您可以按如下方式完成此操作:
//app[not(rdg/@wit[contains(., '#R')])]
或者:
//app[not(rdg[contains(@wit, '#R')])]
这种稍微复杂的方法是必要的,因为 app
包含多个 rdg
,所以我们基本上是这样做的(以第二个例子为例):
- 选择所有
应用
,其中... - 没有一个
rdg
child ... wit
属性包含#R
关于xml - 在子节点不包含属性的情况下,如何使用 Xpath 定位父节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59259384/