red*_*vil 1 java xml xpath vtd-xml
我有以下xml
<test>
<nodeA>
<nodeB>key</nodeB>
<nodeC>value1</nodeC>
</nodeA>
<nodeA>
<nodeB>key</nodeB>
<nodeC>value2</nodeC>
</nodeA>
</test>
Run Code Online (Sandbox Code Playgroud)
如何连接并获取xpath中的所有值/test/nodeA/nodeC
?我在这种情况下的预期输出是value1value2
我不确定从我读过的内容可以用xpath,但谢谢你的帮助.
PS:我使用Ximpleware的VTD-XML在Java中解析它.任何基于Java的解决方案也欢迎.目前我的java解决方案只提供第一个值,即value1
XPath将返回一个NodeList
可以迭代和连接的东西:
StringBuilder concatenated = new StringBuilder():
XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "/test/nodeA/nodeC/text()";
InputSource inputSource = new InputSource("sample.xml");
NodeList nodes = (NodeList) xpath.evaluate(expression, inputSource, XPathConstants.NODESET);
for(int i = 0; i < nodes.getLength(); i++) {
concatenated.append(nodes.item(i).getTextContent());
}
Run Code Online (Sandbox Code Playgroud)