2010-12-08 242 views
2

如何检查名称空间是否存在或不是一个元素?检查节点的名称空间

+0

好问题,+1。查看我的答案获得完整的解决方案。 :) – 2010-12-08 14:41:25

回答

1

如何或是否存在命名不 一个元素?

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

我解释这个问题的意思

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

not(namespace-uri() = "") 

这个表达式是true()恰好在当前节点是一个命名空间和false()否则。

0

命名空间总是存在 - 它可能是default之一,但它将存在。

+0

但如何检查使用条件? – 2010-12-08 10:01:52

0

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

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

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

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

每个项目可以用这些表达式来选择:

namespace-uri($node) 

local-name($node) 

substring-before(name($node),':') 
相关问题