我正在创建一个帮助方法,该方法允许我遍历 XML 文档并将每个元素放入数据 HashMap 中,然后返回它。这是我一直在研究的方法:
private static HashMap<String, String> traverseNodes( Node n, HashMap<String,String> data )
{
NodeList children = n.getChildNodes();
if( children != null ) {
for( int i = 0; i < children.getLength(); i++ ) {
Node childNode = children.item( i );
String nodeName = childNode.getNodeName();
if(childNode instanceof Element)
{
data.put(nodeName, getStringByTag(nodeName, (Element)childNode));
Log.d("traversal", childNode.getNodeName() + " was saved in hashmap");
}
else
Log.d("traversal", childNode.getNodeName() + " Is not an Element type");
System.out.println( "node name = " + childNode.getNodeName() );
traverseNodes( childNode, data );
}
}
return data;
}
我尝试运行该示例,虽然我收到消息说“childNode.getNodeName() +”已保存在 hashmap 中。但返回的 HashMap 是空的。
我究竟做错了什么?
编辑!奖励问题:我编辑了代码以反映建议的更改。然而,似乎该方法本身并没有保存我的 XML 文档的值。方法的逻辑有问题吗?