检查节点的命名空间

时间:2010-12-08 09:49:40

标签: xslt

如何检查元素是否存在命名空间?

3 个答案:

答案 0 :(得分:1)

  

如何检查名称空间是否存在或   不是元素?

这个问题不太清楚。在XML(+名称空间)中,每个节点至少有两个名称空间 - 保留前缀“xml”和“xmlns”)

我将问题解释为

  

如何检查节点是否 a   命名空间。

<强>解决方案

not(namespace-uri() = "")

当当前节点在命名空间中时,此表达式为true(),否则为false()

答案 1 :(得分:0)

命名空间始终存在 - 它可能是default,但它会存在。

答案 2 :(得分:0)

正确地说,QName是一个元组(名称空间URI,本地名称,前缀)。

对于元素和属性以外的节点类型,名称空间URI和前缀为空。

对于no null(或空)默认命名空间URI下的元素,只有前缀为空。

所有带空前缀的属性都有空名称空间URI。

可以使用以下表达式选择每个项目:

namespace-uri($node)

local-name($node)

substring-before(name($node),':')