我目前正在解析Xml bye Dom但是我想获取它们的元素和属性我不知道我是如何得到它的,我无法获取元素名称和每个元素的值和属性也可以帮助我请。
private void parsexml(String xmlresult){
ListView myList=(ListView)findViewById(android.R.id.list);
menuItems = new ArrayList<HashMap<String, String>>();
XmlParser parser = new XmlParser();
Document doc = parser.getDomElement(xmlresult); // getting DOM element
NodeList nl = doc.getElementsByTagName("*");
// looping through all item nodes <item>
for (int i = 0; i < nl.getLength(); i++) {
Node nNode = nl.item(i);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element e = (Element) nl.item(i);
Element eElement = (Element) nNode;
String tagname = eElement.getTagName();
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
// adding each child node to HashMap key => value
map.put(KEY_ID, parser.getValue(e, KEY_ID));
map.put(KEY_NAME, parser.getValue(e, KEY_NAME));
map.put(KEY_COST, "Rs." + parser.getValue(e, KEY_COST));
map.put(KEY_DESC, parser.getValue(e, KEY_DESC));
map.put(KEY_categroy, parser.getValue(e, KEY_categroy));
map.put(KEY_order, parser.getValue(e, KEY_order));
// adding HashList to ArrayList
menuItems.add(map);
}
}
// Adding menuItems to ListView
ListAdapter adapter = new SimpleAdapter(this, menuItems,
R.layout.list_item,
new String[] { KEY_NAME, KEY_DESC, KEY_COST,KEY_categroy,KEY_order }, new int[] {
R.id.name, R.id.desciption, R.id.cost,R.id.categroy,R.id.order });
setListAdapter(adapter);
((BaseAdapter)adapter).notifyDataSetChanged();
}
XML
<AvailableProducts>
<Roomtype IDRoom="1" Code="A1D" NormBed="1" Maxbed="2" Category="3" Order="4"><Description Name="Deluxe Double Room" Text="" IDLanguage="4"/>
<Roomtype IDRoom="1" Code="A1D" NormBed="1" Maxbed="2" Category="3" Order="4"><Description Name="Deluxe Double Room" Text="" IDLanguage="4"/></AvailableProducts>
答案 0 :(得分:0)
HeJ小鼠,
起初你的xml看起来不像DOM树。 DOM由包含多个子元素的根元素(例如“AvailableProducts”)组成。为了像代码建议的那样解析子代,你需要给getElementsByTagName()方法提供根元素的标记名:
NodeList nl = doc.getElementsByTagName("AvailableProducts");
否则,请考虑使用更复杂的XMLPullParser,但您可以准确定义所需内容。
我希望这会对你有所帮助。欢呼声。
编辑:xml现在看起来更好。我在答案中更新了代码。如果正确接收了xml数据,您应该能够获得Fildor建议的
属性e.getAttribute("AttribName")