2011-09-20 102 views
5

我正在使用Java的DOM解析器来解析XML文件。文档 - 如何通过名称获取标签的值?

让我们说我有以下XML

<?xml version="1.0"?> 

<config> 
    <dotcms> 
     <endPoint>ip</endPoint> 
    </dotcms> 
</config> 

</xml> 

我想获得“端点”的值。我可以用下面的代码片段来做到这一点。 (假设我已经用DocumentBuilder解析了它)

NodeList nodeList = this.doc.getElementByTagName("dotcms"); 
Node nValue = (Node) nodeList.item(0); 
return nValue.getNodeValue(); 

是否可以通过字段名称获取字段的值?像....

Node nValue = nodeList.getByName("endPoint")这样的事情...?

回答

5

你应该使用XPath这几类任务:

//endPoint/text() 

或:

/config/dotcms/endPoint/text() 

当然Java有一个内置的support XPath的:

XPath xpath = XPathFactory.newInstance().newXPath(); 
XPathExpression expr = xpath.compile("//endPoint/text()"); 
Object value = expr.evaluate(doc, XPathConstants.STRING); 
+0

//很棒!我很感激!简短但有用的答案。 – Moon

0

你也可以使用jOOX,类似于DOM包装的jquery呃,写更少的代码:

// Using css-style selectors 
String text1 = $(document).find("endPoint").text(); 

// Using XPath 
String text2 = $(document).xpath("//endPoint").text(); 
相关问题