gpt4 book ai didi

xml - 如何在 XPath 中通过属性命名空间查找元素

转载 作者:数据小太阳 更新时间:2023-10-29 01:38:52 26 4
gpt4 key购买 nike

我正在尝试使用 XPath 查找在给定命名空间中具有某个元素的所有元素。

例如,在下面的文档中我想找到 foo:bardoodah 元素:

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:foo="http://foo.example.com">
<foo:bar quux="value">Content</foo:bar>
<widget>Content</widget>
<doodah foo:quux="value">Content</doodah>
</root>

我知道我可以使用以下 XPath 表达式从给定的命名空间加载所有属性:

"//@*[namespace-uri()='http://foo.example.com']"

但是:

  • 这没有给我元素,只有属性。
  • 如果元素包含来自该命名空间的多个属性,则此选择器将返回每个属性而不是每个元素的结果

是否可以得到我想要的,还是必须收集属性并计算它们对应的唯一元素集?

最佳答案

使用:

//*[namespace-uri()='yourNamespaceURI-here'
or
@*[namespace-uri()='yourNamespaceURI-here']
]

谓词两个条件与 XPath or 运算符进行或运算。

因此,XPath 表达式会选择满足以下任一条件的任何元素:

  • 属于指定的命名空间。
  • 具有属于指定命名空间的属性。

关于xml - 如何在 XPath 中通过属性命名空间查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/529556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com