2011-09-20 5 views
5

मैं एक एक्सएमएल फ़ाइल को पार्स करने के लिए जावा के डोम पार्सर का उपयोग कर रहा हूं।दस्तावेज़ - टैग के मूल्य को उसके नाम से कैसे प्राप्त करें?

मान लीजिए कि मैं निम्न XML

<?xml version="1.0"?> 

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

</xml> 

मैं 'endpoint' का मान प्राप्त करना चाहते डालते हैं। मैं इसे निम्नलिखित कोड स्निपेट के साथ कर सकता हूं। (यह सोचते हैं कि मैं पहले से ही 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() 

या:

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

// बढ़िया !! मैं इसकी सराहना करता हूं! संक्षिप्त, लेकिन उपयोगी उत्तर। – Moon

0

आप:

/config/dotcms/endPoint/text() 
बेशक

जावा एक अंतर्निहित support XPath के लिए है jOOX का उपयोग भी कर सकता है, jquery-जैसे डीओएम रैप एर, कम कोड लिखने के लिए:

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

// Using XPath 
String text2 = $(document).xpath("//endPoint").text(); 
संबंधित मुद्दे