利用Pull生成和解析xml文件
来源:互联网 发布:iphone8库存监控软件 编辑:程序博客网 时间:2024/04/29 10:11
解析xml的方式有很多,可以用dom,sax解析,但是在android平台上最常用是Pull解析,下面是简单的示例
<?xmlversion="1.0" encoding="UTF-8"?><persons> <person id=“18"> <name>allen</name> <age>36</age> </person> <person id=“28"> <name>james</name> <age>25</age> </person></persons>
javabean类
public class Person {private Integer id;private String name;private Short 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 Short getAge() {return age;}public void setAge(Short age) {this.age = age;}}生成xml文件
public static String writeXML(List<Person> persons, Writer writer){ XmlSerializer serializer = Xml.newSerializer(); try { serializer.setOutput(writer); serializer.startDocument("UTF-8", true); //第一个参数为命名空间,如果不使用命名空间,可以设置为null serializer.startTag("", "persons"); for (Person person : persons){ serializer.startTag("", "person"); serializer.attribute("", "id", person.getId().toString()); serializer.startTag("", "name"); serializer.text(person.getName()); serializer.endTag("", "name"); serializer.startTag("", "age"); serializer.text(person.getAge().toString()); serializer.endTag("", "age"); serializer.endTag("", "person"); } serializer.endTag("", "persons"); serializer.endDocument(); return writer.toString(); } catch (Exception e) { e.printStackTrace(); } return null;}
解析xml文件
public static List<Person> readXML(InputStream inStream) {XmlPullParser parser = Xml.newPullParser();try {parser.setInput(inStream, "UTF-8");int eventType = parser.getEventType();Person currentPerson = null;List<Person> persons = null;while (eventType != XmlPullParser.END_DOCUMENT) {switch (eventType) {case XmlPullParser.START_DOCUMENT://文档开始事件,可以进行数据初始化处理persons = new ArrayList<Person>();break;case XmlPullParser.START_TAG://开始元素事件String name = parser.getName();if (name.equalsIgnoreCase("person")) {currentPerson = new Person();currentPerson.setId(new Integer(parser.getAttributeValue(null, "id")));} else if (currentPerson != null) {if (name.equalsIgnoreCase("name")) {currentPerson.setName(parser.nextText());// 如果后面是Text节点,即返回它的值} else if (name.equalsIgnoreCase("age")) {currentPerson.setAge(new Short(parser.nextText()));}}break;case XmlPullParser.END_TAG://结束元素事件if (parser.getName().equalsIgnoreCase("person") && currentPerson != null) {persons.add(currentPerson);currentPerson = null;}break;}eventType = parser.next();}inStream.close();return persons;} catch (Exception e) {e.printStackTrace();}return null;}
,
0 0
- 利用Pull生成和解析xml文件
- android利用pull技术来解析和生成xml文件
- android利用Pull解析器解析、生成XMl文件
- Pull解析器解析XML文件和生成XML文件
- 利用pull解析xml文件
- 使用pull解析xml和生成xml文件
- 用pull解析xml和pullParse生成xml文件详解
- 使用Pull解析器生成和解析XML文件
- 使用pull解析器解析和生成xml文件
- Pull解析和生成XML
- pull解析和生成xml
- pull解析和生成xml
- 利用pull解析器解析xml文件
- 利用PULL解析方式解析XML文件
- Android利用pull解析器生成xml
- 如何利用Pull解析器生成XML
- Android使用PULL解析和生成XML文件
- Android开发之Pull解析读取和生成XML文件
- MD5消息摘要的C++实现
- hdu 1754 I Hate It 线段树(插点问点)
- POJ 1509 后缀数组
- Spring Data JPA进阶——Specifications和Querydsl
- 三角雏形 1
- 利用Pull生成和解析xml文件
- Java热更新
- 网页端免费看腾讯vip付费漫画
- MySql笔记-主要存储引擎
- Android SlidingMenu 常见属性
- AUC与ROC
- java Swing布局管理器之CardLayout布局
- C++作业5
- 小圆点和Viewpager+fragment实现轮播