选择没有指定命名空间XPath 2.0的元素的属性

时间:2011-11-25 14:58:46

标签: xpath attributes xpath-2.0

只是一个简单的问题:

如果我有一个元素说

<element a:lol="." a:rofl="." b:lol="." b:rofl="." lol="." rofl="."/>

我知道我可以使用a

选择名称空间@a:*下的所有属性

如何在没有任何名称空间的情况下选择所有属性?

我知道@*[namespace-uri()='']有效,但我希望有更紧凑的东西 - 比如关键字前缀。例如:@none:*

2 个答案:

答案 0 :(得分:1)

@*[namespace-uri() = '']在我看来是好方法。

答案 1 :(得分:1)

您也可以使用

@*[name() eq local-name()]

在XPath中,任何未加前缀的名称都被认为是在“无名称空间”中,因此该表达式仅选择未加前缀的名称,即“无名称空间”中的名称。