XML 文档中的某些节点具有 namespace ,使用已定义的前缀指定。
可以在 XPath 1.0 中指定 local-name() 从而忽略命名空间。
但是,我想让 XPath 的编写者能够使用节点的完整 namespace 限定名称作为标识符来查找节点。
推荐的方法是在调用代码(在我的例子中是 Java)中添加 namespace 声明。但这意味着编写 Xpath 的人没有使用命名空间的能力!
我们如何使用纯 XPath 通过完全限定名称查找节点?
最佳答案
不确定“作为标识符”是什么意思。
How do we find nodes by their fully qualified names using pure XPath?
在 XPath 1.0 中,通过使用 local-name() 和 namespace-uri() ,例如
"*[local-name() = 'foo' and namespace-uri() = 'http://my.org/ns/2.0']"
在 XPath 2.0 中,有一组更丰富的与 namespace 相关的函数,例如namespace-uri-from-QName()
.但我不确定他们是否会根据您的需要改进上述内容。
关于xml - 为什么命名空间限定的节点没有 XPath 语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7056707/