我有一个如下所述的xml。
<labels>
<label id="lblMS">
<text language="EN" value="Morning Sync"/>
<text language="DE" value="Morgan Sync"/>
</label>
<label id="lblES">
<text language="EN" value="Evening Sync"/>
<text language="DE" value="Sync Abend"/>
</label>
<label id="lblAS">
<text language="EN" value="Afternoon Sync"/>
<text language="DE" value="Sync Afternoon"/>
</label>
</labels>
我可以逐节点地使用xmlpull解析器进行解析,如下所示。
private HashMap<String, String> readCountry(XmlPullParser parser)
throws XmlPullParserException, IOException
{
parser.require(XmlPullParser.START_TAG, ns, "label");
String labelid = parser.getAttributeValue(ns, "id");
String textlan = "";
String textval="";
String capital="";
String currencyCode="";
String currency="";
while(parser.next() != XmlPullParser.END_TAG){
if(parser.getEventType() != XmlPullParser.START_TAG){
continue;
}
String name = parser.getName();
if(name.equals("text")){
textlan = parser.getAttributeValue(ns, "language");
textval = parser.getAttributeValue(ns,"value");
readCapital(parser);
}else{
skip(parser);
}
}
String details = "Language : " + textlan + "\n" +
"Value : " + textval + "\n";
HashMap<String, String> hm = new HashMap<String, String>();
hm.put("id", labelid);
hm.put("details",details);
return hm;
}
但我的要求略有不同。我想制作包含id作为键的标签和所有子节点即。文本节点作为标签ID的值。
我为此付出了很多努力。在这方面你能帮帮我吗。谢谢你
答案 0 :(得分:2)
试试这个解决方案 -
将Hashmap添加到ArrayList。因此,您将获得“key”格式的哈希映射列表:“value”类型。
<logger logfileDirectory="path/to/logging/" logLevel="1"/>
<logger logfileDirectory="path/to/logging/" logLevel="2"/>
<logger logfileDirectory="path/to/logging/" logLevel="4"/>
<logger logfileDirectory="path/to/logging/" logLevel="4"/>
<logger logfileDirectory="path/to/logging/" logLevel="5"/>
"done"
希望它有所帮助。
答案 1 :(得分:1)
替换
hm.put("id", labelid);
hm.put("details",details);
与
hm.put(labelid, details);