XPath (1.0) 能否用于返回 XML 文档中的命名空间节点?
注意:我不是要求具有给定名称空间的节点,而是名称空间节点本身。所以不是:
//node()[namespace-uri()='http://a.b']
如果实现了命名空间轴(Firefox/Mozilla 拒绝这样做),则为//namespace::node()
您提供所有命名空间节点。但请注意,XSLT/XPath 数据模型中的名称空间节点与 XML 文档中的名称空间声明属性不同,带有标记
<root xmlns="http://example.com/ns">
<foo>
<bar>baz</bar>
</foo>
</root>
所有三个元素都有两个在范围内的命名空间节点,一个在根元素上声明的默认节点和一个用于命名空间的内置节点xml
。
namespace::
XPath 1.0 中有一个轴,所以你可以。在 2.0 中,它已被弃用,仅适用于兼容模式。但是,您可以查询范围内的所有命名空间绑定/前缀。
依赖实际的命名空间节点通常不是一个好主意,尽管有时这是不可避免的。请注意,namespace::
轴包含该元素范围内的所有命名空间节点。要查找绑定在该特定元素上的那些,您必须将节点列表与父元素范围内的命名空间进行比较。