使用XPath进行Java XML解析?

时间:2010-06-28 19:08:49

标签: java xpath

这里有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或对象中。

2 个答案:

答案 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)

你见过The Java XPath API