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 ):
<code class="language-java"> // 获取xml文件
InputStream is = this.getAssets().open("beauties.xml");
// 新建一个XmlPullParser对象,并设置编码
XmlPullParserFactory parserfactory = XmlPullParserFactory.newInstance();
//define xmlparse XmlPullParser
XmlPullParser xpp = parserfactory.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();//声明一个实体类,包含相应的get和set方法。
} 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();
}
</code>