xml文件
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person id="23">
<name>zhansan</name>
<age>30</age>
</person>
<person id="20">
<name>lisi</name>
<age>25</age>
</person>
</persons>
/**
* pull解析
*
* @time 下午07:11:11
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class PullPersonService {
public static void save(List<Person> persons, OutputStream outputStream) throws Throwable {
XmlSerializer serializer = Xml.newSerializer();
serializer.setOutput(outputStream, "utf-8");
serializer.startDocument("utf-8", true);
serializer.startTag(null, "persons");
for (Person p : persons) {
serializer.startTag(null, "person");
serializer.attribute(null, "id", p.getId().toString());
serializer.startTag(null, "name");
serializer.text(p.getName());
serializer.endTag(null, "name");
serializer.startTag(null, "age");
serializer.text(p.getAge());
serializer.endTag(null, "age");
serializer.endTag(null, "person");
}
serializer.endTag(null, "persons");
serializer.endDocument();
outputStream.close();
}
/**
* 取得每一个person元素
*
* @param inputStream
* @return
* @throws Throwable
*/
public static List<Person> getPersons(InputStream inputStream) throws Throwable {
List<Person> persons = null;
Person person = null;
XmlPullParser parser = Xml.newPullParser();
parser.setInput(inputStream, "utf-8");
int eventType = parser.getEventType();
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 ("person".equals(name)) {
person = new Person();
person.setId(Integer.parseInt(parser.getAttributeValue(0)));
}
if (person != null) {
if ("name".equals(name)) {
person.setName(parser.nextText());
}
if ("age".equals(name)) {
person.setAge(parser.nextText());
}
}
break;
case XmlPullParser.END_TAG:
if ("person".equals(parser.getName())) {
persons.add(person);
}
break;
}
eventType = parser.next();
}
return persons;
}
}
分享到:
相关推荐
本文将深入探讨Android中的Pull解析XML技术,以及如何利用模板快速实现XML的解析。 首先,理解XML Pull解析器的工作原理是至关重要的。在Android中,XML Pull解析是一种轻量级处理XML文档的方式,它允许应用移动...
接下来,我们将详细介绍Pull解析XML文件的过程。 1. **引入Pull解析器库** 在Android项目中,首先需要添加对`androidx.xml`库的依赖,确保解析器可用。在`build.gradle`文件中添加以下依赖: ```gradle ...
"Pull解析XML"是Android系统中处理XML文档的一种高效方法,相较于DOM(Document Object Model)和SAX(Simple API for XML),Pull解析器在内存占用和性能上有显著优势,尤其适合于移动设备资源有限的环境。...
**使用PULL解析XML的步骤** 1. **引入库** 首先,在Android项目中,我们需要引入`xmlpull.org`的库,这个库已经被包含在Android SDK中,无需额外下载。在代码中,我们可以通过以下方式获取到PULL解析器: ```java ...
pull解析xml文件
"Android pull解析xml源码"这个主题聚焦于使用Android的XML Pull解析器来理解和操作XML文档。Pull解析器是一种事件驱动的解析方法,与DOM(Document Object Model)和SAX(Simple API for XML)不同,它不需要将整个...
该文章详细介绍了在Android环境下如何使用SAX和PULL解析XML,包括代码示例和步骤说明,对于初学者来说非常有帮助。 最后,压缩包中的"Weather"文件很可能是示例的天气预报XML数据。通过实际解析这个文件,你可以更...
pull解析xml文件,和sax和dom一样 都可以脱离android单独使用,pull和sax的原理一样,不一样的地方是pull读取xml文件后调用方法返回的是数字, 读取到xml的声明返回数字0 START_DOCUMENT; 读取到xml的结束返回数字1 ...
PULL解析器是Android SDK中内置的一种解析XML的机制,特别适合于资源有限的移动设备。它通过事件驱动的方式解析XML文档,只在需要时读取数据,减少了内存消耗。PULL解析器的操作模式是拉(Pull)而非推(Push),...
XML解析有三种方式 1,DOM 通用性强,它会将XML文件的所有内容读取到内存中,然后使用DOM API遍历XML树、检索所需的数据;...Android自带的XML解析器,和SAX基本类似,也是事件驱动,不同的是PULL事件返回的是数值型
在Android开发中,"13pull解析xml天气信息"是一个典型的任务,涉及到网络数据获取、XML解析以及用户界面展示等多个方面。在这个例子中,开发者通常会利用Android的Pull解析器来处理XML数据,从而获取并显示天气预报...
总之,Android提供了SAX和PULL两种解析XML的手段,开发者可以根据具体情况灵活选择。在内存有限或者需要高效处理大量XML数据的情况下,SAX可能是更好的选择;而在追求简洁代码和快速开发的场合,PULL解析则更为便捷...
本文将深入探讨如何使用PULL解析XML,并结合ButterKnife库进行视图绑定。首先,我们来理解什么是PULL解析。 PULL解析是一种事件驱动的解析方式,由Android SDK提供。它与SAX解析类似,但更适用于移动设备,因为内存...
"Pull解析xml Android"这个主题聚焦于Android平台下使用Pull解析器处理XML数据的方法。 Pull解析(XMLPullParser)是Android提供的一种轻量级、低内存消耗的XML解析方式。它不同于DOM解析器(将整个XML文档加载到...
以下是一些关于封装Pull解析XML的关键知识点: 1. **创建XMLPullParser实例**: Android系统提供了`XmlPullParserFactory`类,通过`newInstance()`方法创建XMLPullParser的工厂对象,然后使用`newPullParser()`...
总结来说,Pull解析XML文件是Android开发中处理XML数据的一种高效方法。通过`XmlPullParser`接口,我们可以逐个处理XML元素,节省内存,提高应用程序性能。在实际应用中,可以根据需求调整解析逻辑,以适应各种XML...
使用Pull解析XML的基本流程: 1. 创建Pull解析器:通过`XmlPullParserFactory`工厂类实例化`XmlPullParser`。 2. 设置输入源:根据XML文件来源(如文件、网络流等)设置解析器的输入源。 3. 开始解析:调用`next()`...
"Android之PULL解析XML"是Android平台中处理XML数据的一种高效方式,它与SAX(Simple API for XML)类似,但更适合Android环境。PULL解析器在内存使用和性能方面进行了优化,适合于资源有限的移动设备。 PULL解析器...