加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XmlPullParser解析xml

发布时间:2020-12-16 02:11:53 所属栏目:百科 来源:网络整理
导读:xml文件 ?xml version="1.0" encoding="UTF-8"? beauties daxiongmei name杨幂/name age28/age /daxiongmei daxiongmei name范冰冰/name age23/age /daxiongmei /beauties 解析的类代码如下(XmlPullParser): // 获取xml文件InputStream is = this.getAsse

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();

	}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读