日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android--使用XMLPull解析xml

發(fā)布時(shí)間:2024/1/17 Android 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android--使用XMLPull解析xml 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在Android中極力推薦的xmlpull方式解析xml。xmlpull不僅僅可以使用在Android上,同樣也適用于javase,但在javase環(huán)境下,你需要自己去獲取xmlpull所依賴的類庫(kù)。
????????環(huán)境:????????

????kxml2-2.3.0.jar

????xmlpull_1_1_3_4c.jar

以上兩個(gè)jar分別從以下網(wǎng)站下載:

http://www.xmlpull.org/??? xmlpull

http://kxml.sourceforge.net/??? kxml

xml文件:

<?xml version="1.0" encoding="UTF-8"?> <root><student id="1" group="1"><name>張三</name><sex>男</sex><age>18</age><email>zhangsan@163.com</email><birthday>1987-06-08</birthday><memo>好學(xué)生</memo></student><student id="2" group="2"><name>李四</name><sex>女</sex><age>18</age><email>lisi@163.com</email><birthday>1987-06-08</birthday><memo>好學(xué)生</memo></student><student id="3" group="3"><name>小王</name><sex>男</sex><age>18</age><email>xiaowang@163.com</email><birthday>1987-06-08</birthday><memo>好學(xué)生</memo></student><student id="4" group="4"><name>小張</name><sex>男</sex><age>18</age><email>xiaozhang@163.com</email><birthday>1987-06-08</birthday><memo>好學(xué)生</memo></student><student id="5" group="5"><name>小明</name><sex>男</sex><age>18</age><email>xiaoming@163.com</email><birthday>1987-06-08</birthday><memo>好學(xué)生</memo></student> </root>Xml對(duì)應(yīng)的實(shí)體bean文件:

package com.parsexml.entity;public class Student {private int id;private int group;private String name;private String sex;private int age;private String email;private String memo;private String birthday;public int getId() {return id;}public void setId(int id) {this.id = id;}public int getGroup() {return group;}public void setGroup(int group) {this.group = group;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getMemo() {return memo;}public void setMemo(String memo) {this.memo = memo;}public String getBirthday() {return birthday;}public void setBirthday(String birthday) {this.birthday = birthday;}}
Pull解析代碼:

package com.parsexml;import java.io.IOException; import java.util.ArrayList; import java.util.List;import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory;import com.parsexml.entity.Student;public class PullParseXml {public List<Student> PullParseXML(){List<Student> list=null;Student student = null;//構(gòu)建XmlPullParserFactorytry {XmlPullParserFactory pullParserFactory=XmlPullParserFactory.newInstance();//獲取XmlPullParser的實(shí)例XmlPullParser xmlPullParser=pullParserFactory.newPullParser();//設(shè)置輸入流 xml文件xmlPullParser.setInput(Thread.currentThread().getContextClassLoader().getResourceAsStream("Student.xml"), "UTF-8");//開(kāi)始int eventType=xmlPullParser.getEventType();try {while(eventType!=XmlPullParser.END_DOCUMENT){String nodeName=xmlPullParser.getName();switch (eventType) {//文檔開(kāi)始case XmlPullParser.START_DOCUMENT:list=new ArrayList<Student>();break;//開(kāi)始節(jié)點(diǎn)case XmlPullParser.START_TAG://判斷如果其實(shí)節(jié)點(diǎn)為studentif("student".equals(nodeName)){//實(shí)例化student對(duì)象student=new Student();//設(shè)置Id屬性student.setId(Integer.parseInt(xmlPullParser.getAttributeValue(0)));//設(shè)置Group屬性student.setGroup(Integer.parseInt(xmlPullParser.getAttributeValue(1)));}else if("name".equals(nodeName)){//設(shè)置namestudent.setName(xmlPullParser.nextText());}else if("sex".equals(nodeName)){//設(shè)置sexstudent.setSex(xmlPullParser.nextText());}else if("age".equals(nodeName)){//設(shè)置agestudent.setAge(Integer.parseInt(xmlPullParser.nextText()));}else if("email".equals(nodeName)){//設(shè)置emailstudent.setEmail(xmlPullParser.nextText());}else if("birthday".equals(nodeName)){//設(shè)置birthdaystudent.setBirthday(xmlPullParser.nextText());}else if("memo".equals(nodeName)){//設(shè)置memo屬性student.setMemo(xmlPullParser.nextText());}break;//結(jié)束節(jié)點(diǎn)case XmlPullParser.END_TAG:if("student".equals(nodeName)){list.add(student);student=null;}break;default:break;}eventType=xmlPullParser.next();}} catch (NumberFormatException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}} catch (XmlPullParserException e) {e.printStackTrace();}return list;}public static void main(String[] args) {List<Student> list=new PullParseXml().PullParseXML();for(Student student:list){System.out.println("id:"+student.getId()+"\tgroup:"+student.getGroup()+"\tname:"+student.getName()+"\tsex:"+student.getSex()+"\tage:"+student.getAge()+"\temail:"+student.getEmail()+"\tbirthday:"+student.getBirthday()+"\tmemo:"+student.getMemo());}}}

注:若工程中缺少kxml2-2.3.0.jar文件則會(huì)報(bào)以下異常信息:

你應(yīng)該添加kxml2-2.3.0.jar包到你的classpath下?




轉(zhuǎn)載于:https://www.cnblogs.com/chaoyu/p/6436886.html

總結(jié)

以上是生活随笔為你收集整理的Android--使用XMLPull解析xml的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。