如何通过 XPath select 命名空间值
How to select namespace value via XPath
我正在尝试使用 XPath 从这个 XML 中获取 xmlns:attr
属性值。我好像听不懂。
<a:b xmlns:attr="value">
</a:b>
这是来自根节点。
我几乎尝试了所有组合,但似乎找不到任何有效的方法。
抛开未声明的 a:
命名空间的干扰,让我们使用这个例子:
<b xmlns:attr="value"/>
注意:您选择的 attr
掩盖了上述 XML、attr
不是 [=44] 的事实=]属性而是一个命名空间前缀.
XPath 1.0
使用namespace
axis:
/b/namespace::attr
将评估为
value
XPath 2.0
根据XML Path Language (XPath) 2.0 (Second Edition):
In XPath Version 2.0, the namespace axis is deprecated and need not be
supported by a host language.
相反,使用 namespace-uri-for-prefix()
:
/b/namespace-uri-for-prefix('attr',.)
将评估为
value
我正在尝试使用 XPath 从这个 XML 中获取 xmlns:attr
属性值。我好像听不懂。
<a:b xmlns:attr="value">
</a:b>
这是来自根节点。
我几乎尝试了所有组合,但似乎找不到任何有效的方法。
抛开未声明的 a:
命名空间的干扰,让我们使用这个例子:
<b xmlns:attr="value"/>
注意:您选择的 attr
掩盖了上述 XML、attr
不是 [=44] 的事实=]属性而是一个命名空间前缀.
XPath 1.0
使用namespace
axis:
/b/namespace::attr
将评估为
value
XPath 2.0
根据XML Path Language (XPath) 2.0 (Second Edition):
In XPath Version 2.0, the namespace axis is deprecated and need not be supported by a host language.
相反,使用 namespace-uri-for-prefix()
:
/b/namespace-uri-for-prefix('attr',.)
将评估为
value