0

我有以下 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}

有人可以帮忙吗?

4

1 回答 1

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());


            }
        }
于 2013-02-04T20:33:19.457 回答