1. package com.cn.service;
2.
3. import java.io.IOException;
4. import java.io.InputStream;
5. import java.io.OutputStream;
6. import java.util.ArrayList;
7. import java.util.List;
8.
9. import org.xmlpull.v1.XmlPullParser;
10. import org.xmlpull.v1.XmlSerializer;
11.
12. import android.util.Xml;
13.
14. import com.cn.domain.Persion;
15. /****
16. * 采用Pull解析XML
17. *
18. * ****/
19. public class PULLPersionService {
20.
21. public static List<Persion> getPersino(InputStream is)throws Exception{
22. List<Persion> list = null;
23. Persion persion = null;
24. XmlPullParser parser = Xml.newPullParser();
25. parser.setInput(is, "UTF-8");
26. int event = parser.getEventType();
27. while(event != XmlPullParser.END_DOCUMENT){
28. switch (event){
29. case XmlPullParser.START_DOCUMENT:
30. list = new ArrayList<Persion>();
31. break;
32. case XmlPullParser.START_TAG:
33. if("person".equals(parser.getName())){//得到指针所指向的节点名称
34. int id = Integer.parseInt(parser.getAttributeValue(0));
35. persion = new Persion();
36. persion.setId(id);
37. }
38. if(persion != null){
39. if("name".equals(parser.getName())){
40. String name = parser.nextText();
41. persion.setName(name);
42. }else if("age".equals(parser.getName())){
43. String age = parser.nextText();
44. persion.setName(age);
45. }
46. }
47. break;
48. case XmlPullParser.END_TAG:
49. if("person".equals(parser.getName())){
50. list.add(persion);
51. persion = null;
52. }
53. break;
54. default:
55. break;
56. }
57. }
58. event = parser.next();
59. return list;
60. }
61.
62. public static void save(List<Persion> list,OutputStream os) throws IllegalArgumentException, IllegalStateException, IOException{
63. XmlSerializer serializer = Xml.newSerializer();
64. serializer.setOutput(os, "UTF-8");
65. serializer.startDocument("UTF-8", true);
66. serializer.startTag(null, "persons");
67. for(Persion persion : list){
68. serializer.startTag(null, "person");
69. serializer.attribute(null, "id", String.valueOf(persion.getId()));
70. serializer.startTag(null, "name");
71. serializer.text(persion.getName());
72. serializer.endTag(null, "name");
73.
74. serializer.startTag(null, "age");
75. serializer.text(String.valueOf(persion.getAge()));
76. serializer.endTag(null, "age");
77. serializer.endTag(null, "person");
78. }
79. serializer.endTag(null, "persons");
80. serializer.endDocument();
81. os.flush();
82. os.close();
83. }
84. }
分享到:
相关推荐
"Pull解析xml Android"这个主题聚焦于Android平台下使用Pull解析器处理XML数据的方法。 Pull解析(XMLPullParser)是Android提供的一种轻量级、低内存消耗的XML解析方式。它不同于DOM解析器(将整个XML文档加载到...
在Android系统中,XML Pull解析是一种轻量级且高效的解析XML文档的方法,它允许应用程序按需读取XML文档的节点,而无需加载整个文档到内存中。以下是关于Android XML Pull解析的详细知识讲解。 1. **XML Pull解析器...
总结,Android的Pull解析XML文件是一种高效、节省资源的解析方式,适用于网络通信中的数据交换。通过创建Pull解析器实例,监听XML事件,以及适当优化,开发者可以轻松处理XML数据,实现更流畅的用户体验。在实际开发...
该文章详细介绍了在Android环境下如何使用SAX和PULL解析XML,包括代码示例和步骤说明,对于初学者来说非常有帮助。 最后,压缩包中的"Weather"文件很可能是示例的天气预报XML数据。通过实际解析这个文件,你可以更...
本文将深入探讨Android中的Pull解析XML技术,以及如何利用模板快速实现XML的解析。 首先,理解XML Pull解析器的工作原理是至关重要的。在Android中,XML Pull解析是一种轻量级处理XML文档的方式,它允许应用移动...
**使用PULL解析XML的步骤** 1. **引入库** 首先,在Android项目中,我们需要引入`xmlpull.org`的库,这个库已经被包含在Android SDK中,无需额外下载。在代码中,我们可以通过以下方式获取到PULL解析器: ```java ...
pull解析xml文件,和sax和dom一样 都可以脱离android单独使用,pull和sax的原理一样,不一样的地方是pull读取xml文件后调用方法返回的是数字, 读取到xml的声明返回数字0 START_DOCUMENT; 读取到xml的结束返回数字1 ...
"Android pull解析xml源码"这个主题聚焦于使用Android的XML Pull解析器来理解和操作XML文档。Pull解析器是一种事件驱动的解析方法,与DOM(Document Object Model)和SAX(Simple API for XML)不同,它不需要将整个...
pull解析xml文件
总之,Android提供了SAX和PULL两种解析XML的手段,开发者可以根据具体情况灵活选择。在内存有限或者需要高效处理大量XML数据的情况下,SAX可能是更好的选择;而在追求简洁代码和快速开发的场合,PULL解析则更为便捷...
总结,本教程介绍了如何在Android中使用PULL解析XML,以及如何结合ButterKnife进行视图绑定。PULL解析提供了高效且内存友好的方式处理XML数据,而ButterKnife则简化了UI组件的管理,两者结合能有效提升开发效率。...
本文将深入探讨如何在Android中使用Pull解析器解析XML文件。 一、XML Pull解析器简介 XML Pull解析器(XML Pull API)是一种基于事件驱动的解析模型,它不需预先加载整个XML文档,而是逐行读取,当遇到特定的XML...
PULL解析器是Android SDK中内置的一种解析XML的机制,特别适合于资源有限的移动设备。它通过事件驱动的方式解析XML文档,只在需要时读取数据,减少了内存消耗。PULL解析器的操作模式是拉(Pull)而非推(Push),...
"Pull解析XML"是Android系统中处理XML文档的一种高效方法,相较于DOM(Document Object Model)和SAX(Simple API for XML),Pull解析器在内存占用和性能上有显著优势,尤其适合于移动设备资源有限的环境。...
Android系统提供了一种轻量级的XML解析方式——PULL解析器(Pull Parser),它适用于处理大型XML文档,因为它不需要像DOM解析器那样一次性加载整个XML文档到内存中。PULL解析器通过事件驱动的方式,按需解析XML文档...
以下是一些关于封装Pull解析XML的关键知识点: 1. **创建XMLPullParser实例**: Android系统提供了`XmlPullParserFactory`类,通过`newInstance()`方法创建XMLPullParser的工厂对象,然后使用`newPullParser()`...
本文将深入探讨如何在Android中生成XML文件以及如何使用PULL解析器来解析XML数据。 首先,我们来看一下如何在Android中生成XML文件。生成XML文件通常涉及创建一个XMLWriter对象,然后通过调用其方法来添加元素、...
XML解析有三种方式 1,DOM 通用性强,它会将XML文件的所有内容读取到内存中,然后使用DOM API遍历XML树、检索所需的数据;...Android自带的XML解析器,和SAX基本类似,也是事件驱动,不同的是PULL事件返回的是数值型
在Android开发中,"13pull解析xml天气信息"是一个典型的任务,涉及到网络数据获取、XML解析以及用户界面展示等多个方面。在这个例子中,开发者通常会利用Android的Pull解析器来处理XML数据,从而获取并显示天气预报...
综上所述,Android中的Pull解析器提供了一种高效、低内存消耗的解析XML的方式。通过创建解析器、设置输入源、处理事件以及异常处理,开发者可以轻松地读取和解析XML文件。在实际应用中,可以根据具体需求调整解析...