私は、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()+」がハッシュマップに保存されました」というメッセージが表示されますが、返されたハッシュマップは空です。
私は何が間違っているのですか?
編集!ボーナス質問:提案された変更を反映するようにコードを編集しました。ただし、メソッド自体はXMLドキュメントの値を保存しないようです。メソッドのロジックに問題はありますか?