用于检查前缀绑定的命名空间的XPath

时间:2015-02-06 17:33:56

标签: java xpath

说我有以下XML文件:

<a xmlns:foo="http://foo"></a>   

我需要检查前缀foo是否绑定到http://foo。其中未绑定可以指示所述前缀根本不存在或者绑定到某个其他命名空间URI。 我已经有了一个带有Document对象和XPath表达式的库,并返回该XPath中存在的List foohttp://foo

那么什么是一个表达式来检查绑定到命名空间<a xmlns:fooX="http://foo"></a> 的最顶层元素(文档元素)中是否存在前缀< xmlns:foo="http://fooX"></a> ,这将产生一个节点上面的XML和以下XML的零节点:

/*[@*[local-name()='foo']]

{{1}}

作为第一步,我尝试使用以下方法获取该属性的值:

{{1}}

...但似乎前缀绑定属性的处理方式与&#34; normal&#34;不同。属性。

1 个答案:

答案 0 :(得分:3)

如果您想使用XPath,那么您必须使用命名空间轴:/*[namespace::foo[. = 'http://foo']]。 DOM Level 3可能提供将名称空间声明视为属性和解析前缀的不同方法,请参阅http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespaceURI