XmlPullParser解析xml

来源:互联网 发布:陕西乡土文化数据 编辑:程序博客网 时间:2024/05/29 15:37

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")) { // 判断开始标签元素是否是daxiongmeibeauty = new Beauty();} else if (xpp.getName().equals("name")) {eventType = xpp.next();// 让解析器指向name属性的值// 得到name标签的属性值,并设置beauty的namebeauty.setName(xpp.getText());} else if (xpp.getName().equals("age")) { // 判断开始标签元素是否是beautyeventType = xpp.next();// 让解析器指向age属性的值// 得到age标签的属性值,并设置beauty的agebeauty.setAge(xpp.getText());}break;// 判断当前事件是否为标签元素结束事件case XmlPullParser.END_TAG:if (xpp.getName().equals("daxiongmei")) { // 判断结束标签元素是否是bookmList.add(beauty); // 将book添加到books集合beauty = null;}break;}// 进入下一个元素并触发相应事件eventType = xpp.next();}



0 0