java XML映射不起作用

时间:2013-02-04 20:18:21

标签: java xml parsing dom

我有以下XML:

<myroot>
<id>1</id>
<doc>im a doc</doc>
<src>sys</src>
</myroot>

我希望能够解析地图中“myroot”内的所有内容。所以对于上面我希望我的函数返回一个映射如下{id = 1,doc = im a doc,src = sys} 我正在使用DOM所以请提供一个DOM建议,这里是我的代码:

//Code to init the Document here.            
....
NodeList root = document.getChildNodes();   //up here i should have myroot
NodeList elements = root.item(0).getChildNodes();  //here i should get all the nested items i want to map
for ( int x = 0; x < elements.getLength(); x++ ) {         
  map.put(elements.item(x).getNodeName(), elements.item(x).getNodeValue());
}

我得到的是这张地图是我不需要的#text地图,我的所有值都是空的!: {#text =,doc = null,id = null,src = null}

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我认为这可以解决您的问题。

        NodeList nList = doc.getChildNodes();
        NodeList elements = nList.item(0).getChildNodes();


        for (int temp = 0; temp < elements.getLength(); temp++) {

            Node nNode = elements.item(temp);

            if (nNode.getNodeType() == Node.ELEMENT_NODE) {

                Element eElement = (Element) nNode;
                System.out.println("Node name: " + eElement.getNodeName() + " \tValue: " + eElement.getTextContent());


            }
        }