这里有XPath和Java的新手。我试图做的是这样的事情:
<A>
<B>
<C>test 1</C>
</B>
<B>
<C/>test 2</C>
</B>
<B>
<C/>test 3</C>
</B>
</A>
for each XMLDoc.children() as BNode
array.append(BNode.getXPathValueAt('B/C'));
end for each
在Java中有一种简单的方法可以使用类似的XPath来获取XML文档中的深层嵌套值吗?我只需要一种快速简便的方法从一个XML文档中提取XPath值,并最终将它们粘贴到一个hashmap或对象中。
答案 0 :(得分:3)
示例代码。干杯:
public class XPathExample {
static final String XML =
"<A>" +
" <B><C>test 1</C></B>" +
" <B><C>test 2</C></B>" +
" <B><C>test 3</C></B>" +
"</A>";
public static void main(final String[] args) throws Exception {
final XPathFactory xpathFactory = XPathFactory.newInstance();
final XPath xpath = xpathFactory.newXPath();
final InputSource xml = new InputSource(new StringReader(XML));
final NodeList list = (NodeList) xpath.evaluate("A/B/C", xml, XPathConstants.NODESET);
for (int i = 0; i < list.getLength(); i++) {
final Node node = list.item(i);
System.out.println(node.getTextContent());
}
}
}
答案 1 :(得分:1)