[英]xpath expression for 2 or more namespases java
我需要 xml 文档的所有命名空间。
<out1:case<br />
xmlns:out="http://ns1"<br />
xmlns:out1="http://ns2" schemaVersion="1.0"><br />
</out1:case>
如果我使用:
XPathFactory.newInstance().newXPath().evaluate("namespace-uri(/*)", document.getChildNodes());
它只返回"http://ns2"
我如何获得"http://ns1"
和"http://ns2"
的列表?
要获取最外层元素范围内的所有命名空间,请使用/*/namespace::*
。 要获取文档中任何位置范围内的所有命名空间,请使用//*/namespace::*
。 但是 (a) 后者将包含大量重复项,并且 (b) 如果您的输入是 DOM,我不确定命名空间节点将如何在 XPath 表达式的结果中表示。
在 XPath 2.0 中,您具有更大的灵活性,例如,您可以使用distinct-values(//*/namespace::*)
将文档中任何位置声明的不同名称空间 URI 作为字符串序列返回。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.