Java - 读取xml文件

时间:2014-06-05 17:40:02

标签: java xml

在Java中,我使用DocumentBuilderFactory,DocumentBuilder和Document来读取xml文件。 但是现在我想创建一个方法,返回遵循给定节点序列的所有值的arraylist。为了更好地解释,我将举一个例子: 假设我有以下xml文件:

<one>
  <two>
    <three>5</three>
    <four>6</four>
  </two>
  <two>
    <three>7</three>
    <four>8</four>
  </two>
</one>

我使用带有字符串参数“one.two.three”的方法,现在返回值应该是包含数字5和7的数组。

我如何构建这个arraylist?

1 个答案:

答案 0 :(得分:2)

你可以使用xpath,虽然语法与dot略有不同(使用斜杠)

    Document d = ....

    XPathFactory xPathfactory = XPathFactory.newInstance();
    XPath xpath = xPathfactory.newXPath();
    XPathExpression expr = xpath.compile("/one/two/three/text()"); // your example expression
    NodeList nl = (NodeList) expr.evaluate(d, XPathConstants.NODESET);
    for (int i = 0; i < nl.getLength(); i++) {
        String n = nl.item(i).getTextContent();
        System.out.println(n); //now do something with the text, like add them to a list or process them directly
    }

您可以找到有关如何使用xpath here

查询节点的更多信息