xml文件
<?xml version="1.0" encoding="UTF-8"?> <beauties> <daxiongmei> <name>杨幂</name> <age>28</age> </daxiongmei> <daxiongmei> <name>范冰冰</name> <age>23</age> </daxiongmei> </beauties>
解析的类代码如下(XmlPullParser):
// 获取xml文件 InputStream is = this.getAssets().open("beauties.xml"); // 新建一个XmlPullParser对象,并设置编码 XmlPullParser xpp = Xml.newPullParser();xpp.setInput(is,"UTF-8"); int eventType = xpp.getEventType();// 获取事件类型 // 判断事件是否到最后 while(eventType!=XmlPullParser.END_DOCUMENT) { switch (eventType) { // 判断当前事件是否为文档开始事件 case XmlPullParser.START_DOCUMENT: mList = new ArrayList<Beauty>(); // 初始化Beauty集合 break; // 判断当前事件是否为标签元素开始事件 case XmlPullParser.START_TAG: if (xpp.getName().equals("daxiongmei")) { // 判断开始标签元素是否是daxiongmei beauty = new Beauty(); } else if (xpp.getName().equals("name")) { eventType = xpp.next();// 让解析器指向name属性的值 // 得到name标签的属性值,并设置beauty的name beauty.setName(xpp.getText()); } else if (xpp.getName().equals("age")) { // 判断开始标签元素是否是beauty eventType = xpp.next();// 让解析器指向age属性的值 // 得到age标签的属性值,并设置beauty的age beauty.setAge(xpp.getText()); } break; // 判断当前事件是否为标签元素结束事件 case XmlPullParser.END_TAG: if (xpp.getName().equals("daxiongmei")) { // 判断结束标签元素是否是book mList.add(beauty); // 将book添加到books集合 beauty = null; } break; } // 进入下一个元素并触发相应事件 eventType = xpp.next(); }