2011-09-20 54 views
5

Tôi đang sử dụng trình phân tích cú pháp DOM của Java để phân tích cú pháp tệp XML.Tài liệu - Cách lấy giá trị của thẻ theo tên của nó?

giả sử tôi có XML sau

<?xml version="1.0"?> 

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

</xml> 

Tôi thích để có được giá trị của 'dùng cuối. Tôi có thể làm điều đó với đoạn mã sau. (giả sử rằng tôi đã phân tích cú pháp đó với DocumentBuilder)

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

Có thể lấy giá trị của trường theo tên trường không? Giống như ....

Node nValue = nodeList.getByName("endPoint") giống như thế này ...?

Trả lời

5

Bạn nên sử dụng XPath cho các loại nhiệm vụ:

//endPoint/text() 

hay:

/config/dotcms/endPoint/text() 

Tất nhiên Java có một built-in support cho XPath:

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

// Tuyệt vời !! Tôi đánh giá cao nó! Câu trả lời ngắn nhưng hữu ích. – Moon

0

Bạn cũng có thể sử dụng jOOX, một bao bọc DOM jquery giống như er, để viết mã ít hơn:

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

// Using XPath 
String text2 = $(document).xpath("//endPoint").text(); 
Các vấn đề liên quan