2012-07-20 31 views
0

可能重复:
how to retrieve element value of XML using Java?XML和Java解析:<元素名称= “DOCTYPE”>

我试图解析使用DOM Java的XML文件。 的XML看起来是这样的:

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

歌厅根节点“文件”,也是子节点“文件”是很容易。但我无法获得名称为“doctype”的元素的值(我想将值“Circular”存储在数据库中)。有人能帮助我吗?

+3

为什么你能不能得到这个元素?告诉我们你的代码。 – Jesper 2012-07-20 11:56:17

+0

doc.getElementsByTagName(“document”)。item(0).getNodeName() doc是我的documentbuilder,与我一起分析了xml文件。 如果我打印这个,会显示结“文档”。但我不知道如何获取元素值。 – Metalhead89 2012-07-20 12:03:36

+0

对不起,但这并没有真正帮助 – Metalhead89 2012-07-20 12:06:12

回答

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 
+1

非常感谢,不是很好,你救了我很多时间! – Metalhead89 2012-07-20 13:12:11

相关问题