SAX / DOM 解析在JAVA中已经学习,这里只对pull解析器方法进行描述
如下xml: Person.xml
<?xml version="1.0" encoding="UTF-8"?> <persons> <person id="23"> <name>liming</name> <age>30</age> </person> <person id="20"> <name>zhangxiaoxiao</name> <age>25</age> </person> </persons>
1.建立domain:
public class Person { private Integer id; private String name; private Integer age; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Person [id=" + id + ", name=" + name + ", age=" + age + "]"; } public Person(Integer id, String name, Integer age) { this.id = id; this.name = name; this.age = age; } public Person(){} }
2.servise:
/** * 获取数据 * @param xml * @return * @throws Exception */ public static List<Person> getPersons(InputStream xml) throws Exception{ List<Person> persons = null; Person person = null; XmlPullParser pullParser = Xml.newPullParser(); pullParser.setInput(xml, "UTF-8");//为Pull解析器设置要解析的XML数据 int event = pullParser.getEventType(); while(event != XmlPullParser.END_DOCUMENT){ switch (event) { case XmlPullParser.START_DOCUMENT: persons = new ArrayList<Person>(); break; case XmlPullParser.START_TAG: if("person".equals(pullParser.getName())){ int id = new Integer(pullParser.getAttributeValue(0)); person = new Person(); person.setId(id); } if("name".equals(pullParser.getName())){ String name = pullParser.nextText(); person.setName(name); } if("age".equals(pullParser.getName())){ int age = new Integer(pullParser.nextText()); person.setAge(age); } break; case XmlPullParser.END_TAG: if("person".equals(pullParser.getName())){ persons.add(person); person = null; } break; } event = pullParser.next(); } return persons; } /** * 保存数据 * @param persons 数据 * @param out 输出方向 * @throws Exception */ public static void save(List<Person> persons, OutputStream out) throws Exception{ XmlSerializer serializer = Xml.newSerializer(); serializer.setOutput(out, "UTF-8"); serializer.startDocument("UTF-8", true); serializer.startTag(null, "persons"); for(Person person : persons){ serializer.startTag(null, "person"); serializer.attribute(null, "id", person.getId().toString()); serializer.startTag(null, "name"); serializer.text(person.getName()); serializer.endTag(null, "name"); serializer.startTag(null, "age"); serializer.text(person.getAge().toString()); serializer.endTag(null, "age"); serializer.endTag(null, "person"); } serializer.endTag(null, "persons"); serializer.endDocument(); out.flush(); out.close(); }
完事~
相关推荐
使用Android自带的XML解析器PULL解析器简单的解析xml,并将内容显示在TestView上,代码简化过。
NULL 博文链接:https://justsee.iteye.com/blog/930603
XML解析有三种方式 1,DOM 通用性强,它会将XML文件的所有内容读取到内存中,然后使用DOM API遍历XML树、检索所需的数据;...Android自带的XML解析器,和SAX基本类似,也是事件驱动,不同的是PULL事件返回的是数值型
Android使用Pull解析器解析xml文件的实现代码,需要的朋友可以参考一下
主要介绍了Android中使用Pull解析器解析XML的方法,与DOM和SAX解析方式相比人们更推崇Pull,需要的朋友可以参考下
本人实现的基于Pull解析器的XML解析生成工具类,将XML文件转换成对象,将对象转换成XML文件并保存,全部通用,不需要与任何对象进行关联
主要针对android中的xml文件进行解析
利用android中自带的pull解析器解析和生成xml片段。
使用Junit测试解析xml和生成xml文件
Android中采用Pull解析器读取和生成xml内容案例...
分享一个pull解析器,解析xml的利器,快来看看吧,很实用的解析器
采用Pull解析器解析和生成XML内容,适合小白上路
NULL 博文链接:https://eeelin.iteye.com/blog/1812828
一个eclipse工程包含如何使用android中自带的xml解析器pull,解析和生成xml文件
Android解析xml(3)---Pull解析
除了可以使用SAX或DOM解析XML文件之外,大家也可以使用Android内置的Pull解析器解析XML文件。 Pull解析器是一个开源的java项目,既可以用于android,也可以用于JavaEE。如果用在javaEE需要把其jar文件放入类路径中,...
支持SAX解析XML文件,DOM解析XML文件,Pull解析器解析XML文件,Pull生成XML文件,JAVA和Kotlin两种语言编写