0

可能重复:
如何使用 Java 检索 XML 的元素值?

我正在尝试使用 dom 解析带有 java 的 xml 文件。xml 看起来像这样:

<documents>
  <document>
    <element name="doctype">
      <value>Circular</value>
    </element>
  </document>
</documents>

获取根节点“文档”以及子节点“文档”很容易。但是我无法获取名为“doctype”的元素的值(我想将值“Circular”存储在数据库中)。有人能帮助我吗?

4

1 回答 1

1

您可以使用以下 XPath 来获取您要查找的数据:

/documents/document/element[@name='doctype']/value

演示

以下演示代码演示了如何针对您的 DOM 执行该 XPath。此应用程序将在任何标准 Java SE 5(或更新版本)安装中运行。

package forum11578831;

import javax.xml.parsers.*;
import javax.xml.xpath.*;
import org.w3c.dom.Document;

public class Demo {

    public static void main(String[] args) throws Exception {
        DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = domFactory.newDocumentBuilder();
        Document dDoc = builder.parse("src/forum11578831/input.xml");

        XPath xPath = XPathFactory.newInstance().newXPath();
        String string = (String) xPath.evaluate("/documents/document/element[@name='doctype']/value", dDoc, XPathConstants.STRING);
        System.out.println(string);
    }

}

输入.xml

我已扩展 XML 文档以包含具有其他值element的属性的元素,以证明 XPath 有效。namedoctype

<documents>
  <document>
    <element name="foo">
      <value>FOO</value>
    </element>
    <element name="doctype">
      <value>Circular</value>
    </element>
    <element name="bar">
      <value>BAR</value>
    </element>
  </document>
</documents>

输出

执行 XPath 的结果就是String您正在寻找的结果:

Circular
于 2012-07-20T13:03:46.713 回答