xml - 从 XML 中选择节点,其属性之一包含特定字符串

标签 xml xpath

我试图选择在其属性之一中包含给定字符串的节点,但似乎我只能在某个属性上执行此操作。

var tempUsers = xmlDocument.selectNodes("//Users/*[contains(@Id,'TEXT')]");

我想我可以写一些其他的东西来代替@Id来检查节点的所有属性,而不仅仅是Id。

谢谢。

最佳答案

可以在xpath中使用@*来选择所有属性,但是比较幼稚

//Users/*[contains(@*,'TEXT')]

不会做你期望的事情。 contains 函数期望其参数为字符串,因此如果您给它一个节点集,它会首先将节点集转换为字符串(通过获取第一个的字符串值) em> 集合中的节点),然后在函数中使用该值。相反,你需要说

//Users/*[@*[contains(.,'TEXT')]]

它将查找文档中的所有 Users 元素,然后选择其所有具有值包含子字符串 TEXT 的属性的子元素。

关于xml - 从 XML 中选择节点,其属性之一包含特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12997691/

相关文章:

xml - 在PowerShell上将节点从一种XML导入到另一种XML

java - Android Studio 渲染问题 - 缺少样式?

xml - 使用 xpath 在 odoo 上进行字段替换

java - 如何找到具有 2 个状态 : clear and class ="error" 的占位符

c# - 字符串到双转换(逗号到点的问题)

xml - 使用模板而不是 for-each 对 XML 数据进行简单分组的 XSLT 到 HTML

java - 两个不同的元素具有相同的 xpath?

c# - 将 XPath 表达式排序为文档顺序

java - 无法使用 XPath 获取 XML 的节点值

java - 使用 Selenium 和 Java 13 自动化 Span