利用网上的方法用pull生成xml讲解的都很清楚,但是用StringWriter去试,根本无法显示
用Log.d(TAG,writer.toString())去试,结果是空的,所以一直的不到结果。加上
Log.d(TAG,“result ”+writer.toString()) 你会发现没有得到结果。但是网上的基本所有方法(我看到的)都是这样写的,怪异~~~
看下网上给出的源代码:
public static void writeXML(List<Person> persons, Writer writer) throws IllegalArgumentException, IllegalStateException, IOException{
XmlSerializer serializer = Xml.newSerializer();
serializer.setOutput(writer);
//开始文档
serializer.startDocument("UTF-8", true);
//设置开始标签
serializer.startTag(null, "persons");
for(Person person:persons){
serializer.startTag(null, "person");
serializer.attribute("", "id", String.valueOf(person.getId()));
serializer.startTag("", "name");
serializer.text(person.getName());
serializer.endTag("", "name");
serializer.startTag("", "age");
serializer.text(String.valueOf(person.getAge()));
serializer.endTag("", "age");
serializer.endTag(null, "person");
}
这是随便copy过来的一个,仔细看就会发现一个很明显的问题 没有serializer.endTag(null, "persons");
但是这个不是造成错误的原因,其实更仔细的去阅读会发现问题出在serializer.endDocument();
不结束结果不会输入到writer里面。网上太多的源代码给了我们启示,也害人不浅
好了,就这样吧 贴个用于生成字符串的函数(如果需要writer则参见上面方法):
import java.io.IOException;
import java.io.StringWriter;
import java.util.List;
import org.xmlpull.v1.XmlSerializer;
import android.util.Xml;
public class PullXML {
public static String writeXML(List<String> persons) throws IllegalArgumentException, IllegalStateException ,IOException{
XmlSerializer serializer = Xml.newSerializer();
StringWriter writer = new StringWriter();
serializer.setOutput(writer);
//开始文档
serializer.startDocument("UTF-8", true);
//设置开始标签
serializer.startTag(null, "persons");
for(String person:persons){
serializer.startTag(null,"person");
serializer.startTag("", "name");
serializer.attribute("", "id", person);
serializer.text(person);
serializer.endTag("", "name");
serializer.startTag("", "age");
serializer.text(person);
serializer.endTag("", "age");
serializer.endTag(null, "person");
}
serializer.endTag(null, "persons");
serializer.endDocument();
return writer.toString();
}
}
分享到:
相关推荐
"Android利用Pull生成XML文件"这一主题涉及到的是如何使用Android的Pull解析器来读取和生成XML内容。Pull解析器是一种轻量级、低级别的解析机制,与DOM(文档对象模型)和SAX(简单API for XML)解析器相比,它更...
总的来说,这个“android使用pull生成xml”的项目可能包含了一个示例应用,演示了如何利用XMLPullParser来解析已有的XML数据,并根据解析结果动态生成新的XML。这在处理动态数据,如用户输入或服务器返回的数据时...
本篇文章将深入探讨如何在Android中使用Pull解析器生成XML数据。 Pull解析器是一种轻量级的解析方式,相比DOM(Document Object Model)和SAX(Simple API for XML),它更节省内存且效率更高。Pull解析器遵循事件...
总的来说,使用Pull解析器读取和生成XML文件是一种高效且灵活的方法,尤其适合处理大型XML文档。通过掌握这一技术,开发者可以更好地处理XML数据,提高程序的性能和稳定性。在进行XML操作时,还需注意数据的正确性和...
我们将讲解如何使用Pull解析器读取本地XML文件,并生成一个新的、格式不同的XML文件。 Pull解析是一种事件驱动的解析方法,它不像DOM解析那样将整个XML文档加载到内存中,而是按需逐个处理XML元素。这种方法节省了...
3. 为了生成XML,可以使用`javax.xml.transform.Transformer`和`javax.xml.transform.dom.DOMSource`以及`javax.xml.transform.stream.StreamResult`,将解析过程中构建的DOM树转换为XML输出。 在实际应用中,SAX和...
本文将深入探讨如何在Android中生成XML文件以及如何使用PULL解析器来解析XML数据。 首先,我们来看一下如何在Android中生成XML文件。生成XML文件通常涉及创建一个XMLWriter对象,然后通过调用其方法来添加元素、...
标题中的“pull解析器通用解析XML与生成XML”是指一种基于Pull解析模型处理XML文档的技术。在Android系统中,XML Pull解析器是一个轻量级、高效的解析XML文档的工具,它不需要DOM(Document Object Model)或者SAX...
本文将深入探讨如何使用Pull解析器来解析和生成XML文件,特别关注Android环境下的应用。 ### Pull解析器概述 Pull解析器是一种事件驱动型的XML解析器,它允许开发者通过一系列的事件来读取和解析XML文档。与SAX...
"Android pull解析xml源码"这个主题聚焦于使用Android的XML Pull解析器来理解和操作XML文档。Pull解析器是一种事件驱动的解析方法,与DOM(Document Object Model)和SAX(Simple API for XML)不同,它不需要将整个...
**PullXML** 是一种针对XML解析的优化方法,尤其适用于移动设备资源有限的环境。它采用事件驱动的模型,通过“拉”取XML文档中的元素来解析,而不是一次性加载整个文档。这大大节省了内存,提高了解析效率。Android_...
在Android系统中,XML Pull解析是一种轻量级且高效的解析XML文档的方法,它允许应用程序按需读取XML文档的节点,而无需加载整个文档到内存中。以下是关于Android XML Pull解析的详细知识讲解。 1. **XML Pull解析器...
本篇文章将深入探讨如何在Android环境中使用内置的Pull解析器来解析和生成XML内容。 首先,我们需要理解什么是Pull解析器。Pull解析器是一种事件驱动的解析模型,它不像SAX解析器那样需要开发者提供回调方法,而是...
PullXML解析器是Android系统提供的一种轻量级的XML解析方法,它适用于处理大量的XML数据,特别是当内存有限或需要高效处理流式数据时。本文将深入探讨如何使用PullXML解析本地XML数据,并将解析后的数据存回本地。 ...
本文将详细介绍如何使用Pull解析器来解析和生成XML内容,这对于初学者来说是一个很好的起点。 首先,我们需要理解XML Pull解析器的工作原理。与SAX(Simple API for XML)和DOM(Document Object Model)解析器不同...
本篇将深入探讨Android下Pull解析器的使用,以及如何利用它来解析和生成XML文件。 一、Android Pull解析器简介 Pull解析器是基于事件驱动的解析模型,它不保留整个XML文档的内存映像,而是按需读取和处理XML元素。...
@Introduction:使用PULL方法进行XML解析 XML文件存放在SDcard根目录下;android1.6版本之前是在/sdcard/,之后是在/mnt/sdcard/ 当前测试用来运行的版本是android。4.2.2 最小支持的版本是android.2.2.0 文件...
在Android开发中,处理XML数据是一项常见的任务,无论是从服务器获取数据还是本地资源文件,XML因其结构化的特点被广泛使用。本教程将详细介绍如何在Android中利用Pull解析器(PullParser)来读取XML文件,这是一种...
本文将深入探讨如何使用SAX、DOM和Pull解析器解析XML文件,以及如何生成XML文件。我们将同时展示Java和Kotlin两种语言的实现方法。 一、SAX解析XML文件 SAX(Simple API for XML)是一种事件驱动的解析器,它不会一...
通过Pull解析器,可以高效、流畅地处理这些数据,将其转化为Java对象,供应用程序进一步使用。 总结来说,Android中的Pull解析xml是一种高效且节省资源的XML处理方式,适用于处理大量或复杂的XML数据。通过理解其...