如何检查元素是否存在命名空间?
答案 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),':')