如何通过XPath选择命名空间值

时间:2015-03-03 00:53:04

标签: xml xpath

我尝试使用XPath从此XML获取xmlns:attr属性值。我似乎无法得到它。

<a:b xmlns:attr="value">
</a:b>

这是来自根节点。

我已经尝试了几乎所有组合,但我似乎找不到任何可行的方法。

1 个答案:

答案 0 :(得分:4)

撇开未声明的a:命名空间的注意力,让我们改为使用这个例子:

<b xmlns:attr="value"/>

注意:您选择attr的名称掩盖了以下事实:attr不是 属性 < / strong>而是 名称空间前缀

XPath 1.0

使用namespace axis

/b/namespace::attr

将评估为

value

XPath 2.0

根据XML Path Language (XPath) 2.0 (Second Edition)

  

在XPath 2.0版中,不推荐使用命名空间轴   由主持语言支持。

请使用namespace-uri-for-prefix()

/b/namespace-uri-for-prefix('attr',.)

将评估为

value