xml - 在子节点不包含属性的情况下,如何使用 Xpath 定位父节点?

标签 xml xpath

如何使用 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/

相关文章:

java - Java中特殊字符的SAX解析

xml - 如何获得玩!提供 XML 响应的框架

java - org.openqa.selenium.ElementNotVisibleException : Element is not currently visible while clicking a checkbox through SeleniumWebDriver and Java

xml - 将 XML 数据从基于 Web 的源导入 Google 表格

xml - 如何在xsd文件中的xpath中使用谓词?

XML Schema 内容模型是不确定的

php - 多个 PHP cUrl 发布到同一页面

xslt - 条件同级值

xml - 匹配具有特定祖先Xpath Xslt的节点

android - 获取应用页面中的所有按钮