【发布时间】:2019-12-10 02:33:49
【问题描述】:
使用 Xpath,如何在属性值列表中找到多个子元素都不包含特定属性值的父元素?
这是我的 xml 示例:
<app>
<rdg wit="#R #W #I #S #C #O #D">existunt,</rdg>
<rdg wit="#J">existant,</rdg>
</app>
我的 XML 有数百个这样的元素,它们都应该具有相同的一组八个属性值(#R 等),它们以不同的方式分布在两个或多个元素之间。但是其中一些缺少列表中的属性值,我需要找到这些节点。
所以我试图找到所有<app> 元素,其中子<rdg> 元素中没有一个 包含#R。
我可以使用//app/rdg[contains(@wit,"#R")] 获得确实 包含#R 的那些,并且我知道有一个 not() 函数,但我还没有弄清楚如何让它们一起工作。
【问题讨论】:
-
你试过了吗?
//app/rdg[not(contains(@wit,"#R"))] -
我有,但它不起作用。这个 Xpath 找到所有没有 #R 的
<rdg>元素。因此,在上面的示例中,它找到了<rdg wit="#J">existant,</rdg>,这不是我需要的。每个<app>元素中至少有一个这样的行。我需要在其<rdg>元素的any 中找到不包含#R 的每个<app>元素,这意味着它需要完全跳过上面的示例<app>。