将XML加载到TreeMap中

时间:2012-10-08 11:23:04

标签: java xml

我有一个XML配置文件,只有一个父项和一个子项。这将永远是这样,永远不会改变。它看起来像这样:

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

我想使用java DOM(org.w3c.dom.Document)将XML解析为TreeMap,以便我可以将属性作为键/值来访问。我猜我需要创建一个for循环来扫描XML并逐行添加键(父)和值(子)?

1 个答案:

答案 0 :(得分: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();

//...

}