Pull解析xml文件
发布时间:2020-12-16 00:22:18 所属栏目:百科 来源:网络整理
导读:解析的文件Person.xml ?xml version="1.0" encoding="utf-8"?persons person id="1" name小罗/name age21/age /person person id="2" nameandroid/name age15/age /person/persons Pull解析工具类 package com.example.xmlparse;import java.io.InputStream;
解析的文件Person.xml
<?xml version="1.0" encoding="utf-8"?> <persons> <person id="1" > <name>小罗</name> <age>21</age> </person> <person id="2"> <name>android</name> <age>15</age> </person> </persons> Pull解析工具类 package com.example.xmlparse; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserFactory; public class PullParseUtils { public static List<Person> parseXmlByPull(InputStream inputStream) throws Exception { List<Person> persons = null; Person person = null; // 创建XmlPullParserFactory解析工厂 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); // 通过XmlPullParserFactory工厂类实例化一个XmlPullParser解析类 XmlPullParser xmlPullParse = factory.newPullParser(); // 根据指定的编码来解析xml文档 xmlPullParse.setInput(inputStream,"utf-8"); // 得到当前的事件类型 int eventType = xmlPullParse.getEventType(); // 只要没有解析到xml的文档结束,就一直解析 while (eventType != XmlPullParser.END_DOCUMENT) { switch (eventType) { // 解析到文档开始的时候 case XmlPullParser.START_DOCUMENT: persons = new ArrayList<Person>(); break; // 解析到xml标签的时候 case XmlPullParser.START_TAG: if ("person".equals(xmlPullParse.getName())) { person = new Person(); // 得到person元素的第一个属性,也就是ID person.setId(xmlPullParse.getAttributeValue(0)); } else if ("name".equals(xmlPullParse.getName())) { //通过nextText得打元素的值 person.setName(xmlPullParse.nextText()); } else if ("age".equals(xmlPullParse.getName())) { // 如果是name元素,则通过nextText()方法得到元素的值 person.setAge(Integer.parseInt(xmlPullParse.nextText())); } break; // 解析到xml标签结束的时候 case XmlPullParser.END_TAG: if ("person".equals(xmlPullParse.getName())) { persons.add(person); person = null; } break; } // 通过next()方法触发下一个事件 eventType = xmlPullParse.next(); } return persons; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |