2016-01-14 34 views
0

我有一個具有以下結構的XML。XML解析:遍歷子節點並將字段值保存到哈希映射

<message> 
    <header> 

    </header> 

    <body> 

    </body> 

    <end> 

    </end> 
</message> 

每個頭,主體和端節點包含,我需要提取到獨立的哈希映射字段。不使用外部庫的最佳方式是什麼?最終結果是顯示整個消息的兩列視圖。 (字段名稱,值)

+0

您可以使用JAXB將其綁定到一個POJO(我想你將不得不實行'javax.xml。 bind.annotation.adapters.XmlAdapter'並使用'@ XmlJavaTypeAdapter'註釋傳遞它)或使用'javax.xml.xpath.Xpath' – theo

回答

1

這取決於你的數據和你的散列圖的結構:什麼是關鍵,如果值。

然而,DOM和XPath做的工作:

String xml= // your xml 
DocumentBuilderFactory builderFactory =DocumentBuilderFactory.newInstance(); 
DocumentBuilder builder = builderFactory.newDocumentBuilder(); 
Document document = builder.parse(new InputSource(new StringReader(xml))); 
String expression="//header"; // Same for body, ... 
XPathExpression expr = xpath.compile(expression) ; 
    NodeList nodes = (NodeList) expr.evaluate(document, XPathConstants.NODESET); 
for (int k = 0; k < nodes.getLength(); k++) { 
// Do what you want with that 

希望它有助於