繁体   English   中英

xpath 表达 2 个或更多命名空间 java

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM