Possible Duplicate:
how to retrieve element value of XML using Java?
我正在尝试使用 dom 用 java 解析 xml 文件。 xml 如下所示:
<documents>
<document>
<element name="doctype">
<value>Circular</value>
</element>
</document>
</documents>
获取根节点“documents”和子节点“document”很容易。但我无法获取名称为“doctype”的元素的值(我想将值“Circular”存储在数据库中)。有人可以帮我吗?
最佳答案
您可以使用以下 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 文档,以包含具有 name
属性的 element
元素,其值不同于 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
关于java - 使用Java进行XML解析: <element name ="doctype">,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11578831/