提问人:Igor Antonov 提问时间:9/4/2022 最后编辑:ProphetIgor Antonov 更新时间:9/4/2022 访问量:19
2 个或更多名称的 XPath 表达式 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"
答:
0赞
Michael Kay
9/4/2022
#1
若要获取最外层元素范围内的所有命名空间,请使用 。若要获取文档中任何位置范围内的所有命名空间,请使用 。但是 (a) 后者将包含大量重复项,并且 (b) 如果您的输入是 DOM,我不确定命名空间节点在 XPath 表达式的结果中将如何表示。/*/namespace::*
//*/namespace::*
在 XPath 2.0 中,您具有更大的灵活性,例如,您可以使用 返回文档中任意位置声明的不同命名空间 URI 作为字符串序列。distinct-values(//*/namespace::*)
评论