2012-10-08 99 views
0

我有一個只有一個父親和一個孩子的XML配置文件。這將永遠是這樣,永遠不會改變。它看起來是這樣的:將XML加載到TreeMap中

<parent> 
    <child1>test</child1> 
    <child2>123</child2> 
</parent> 

我想使用Java的DOM(org.w3c.dom.Document)的XML解析爲一個TreeMap,這樣我可以訪問屬性作爲鍵/值。我猜我需要創建一個for循環掃描XML並逐行添加鍵(父)和值(子)?

+0

你已經試過了嗎?結果是什麼? – 2012-10-08 11:24:45

+0

爲什麼不從學習DOM處理開始並擔心稍後將結果存儲到'TreeMap'中? – 2012-10-08 11:26:33

+0

我不認爲'TreeMap'做你認爲它做。 「樹」部分描述了用於查找密鑰的算法。 –

回答

3

可以遍歷使用JAXP APIs XML文檔,你不需要提前知道

InputStream is = new ByteArrayInputStream(xml.getBytes("UTF-8")); 
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
DocumentBuilder docBuilder = dbf.newDocumentBuilder(); 
Document doc = docBuilder.parse(is); 
NodeList nodeList = doc.getChildNodes(); 

結構或節點的名稱,你可以遍歷文件上,並得到節點和屬性

for (int i = 0; i < nodeList.getLength(); i++) { 
      Node node = nodeList.item(i); 
      NamedNodeMap attributes = node.getAttributes(); 

//... 

}

+0

xml是您的xml字符串,更新了docBuilder的代碼 – Anshu