使用Java解析XML:<element name =“doctype”> </element>

时间:2012-07-20 11:54:05

标签: java xml parsing elementname

  

可能重复:
  how to retrieve element value of XML using Java?

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

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

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

1 个答案:

答案 0 :(得分: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);
    }

}

<强> input.xml中

我已将XML文档扩展为包含element个元素,其中name属性的值为doctype,以证明XPath有效。

<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