`
384444165
  • 浏览: 257953 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

pull 生成xml(用网上方法为空问题)

阅读更多

利用网上的方法用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();
  }
}
 

 

0
1
分享到:
评论

相关推荐

    Android利用pull生成xml文件

    "Android利用Pull生成XML文件"这一主题涉及到的是如何使用Android的Pull解析器来读取和生成XML内容。Pull解析器是一种轻量级、低级别的解析机制,与DOM(文档对象模型)和SAX(简单API for XML)解析器相比,它更...

    android使用pull生成xml

    总的来说,这个“android使用pull生成xml”的项目可能包含了一个示例应用,演示了如何利用XMLPullParser来解析已有的XML数据,并根据解析结果动态生成新的XML。这在处理动态数据,如用户输入或服务器返回的数据时...

    Android 采用pull生成XML数据

    本篇文章将深入探讨如何在Android中使用Pull解析器生成XML数据。 Pull解析器是一种轻量级的解析方式,相比DOM(Document Object Model)和SAX(Simple API for XML),它更节省内存且效率更高。Pull解析器遵循事件...

    使用Pull解析器读取XML文件和生成XML文件

    总的来说,使用Pull解析器读取和生成XML文件是一种高效且灵活的方法,尤其适合处理大型XML文档。通过掌握这一技术,开发者可以更好地处理XML数据,提高程序的性能和稳定性。在进行XML操作时,还需注意数据的正确性和...

    Pull解析与生成Xml

    我们将讲解如何使用Pull解析器读取本地XML文件,并生成一个新的、格式不同的XML文件。 Pull解析是一种事件驱动的解析方法,它不像DOM解析那样将整个XML文档加载到内存中,而是按需逐个处理XML元素。这种方法节省了...

    通过SAX和PULL来解析XML,同时生成xml

    3. 为了生成XML,可以使用`javax.xml.transform.Transformer`和`javax.xml.transform.dom.DOMSource`以及`javax.xml.transform.stream.StreamResult`,将解析过程中构建的DOM树转换为XML输出。 在实际应用中,SAX和...

    android开发之xml文件操作——xml创建和pull解析xml

    本项目主要关注的是XML的创建和使用Pull解析器来解析XML,这是Android系统中处理XML数据的一种高效方法。接下来,我们将详细讨论这两个知识点。 首先,XML(Extensible Markup Language)是一种用于标记数据的语言...

    Android 生成和PULL解析xml

    本文将深入探讨如何在Android中生成XML文件以及如何使用PULL解析器来解析XML数据。 首先,我们来看一下如何在Android中生成XML文件。生成XML文件通常涉及创建一个XMLWriter对象,然后通过调用其方法来添加元素、...

    pull解析器通用解析XML与生成XML

    标题中的“pull解析器通用解析XML与生成XML”是指一种基于Pull解析模型处理XML文档的技术。在Android系统中,XML Pull解析器是一个轻量级、高效的解析XML文档的工具,它不需要DOM(Document Object Model)或者SAX...

    使用pull解析器解析和生成xml文件

    本文将深入探讨如何使用Pull解析器来解析和生成XML文件,特别关注Android环境下的应用。 ### Pull解析器概述 Pull解析器是一种事件驱动型的XML解析器,它允许开发者通过一系列的事件来读取和解析XML文档。与SAX...

    android pull解析xml源码

    "Android pull解析xml源码"这个主题聚焦于使用Android的XML Pull解析器来理解和操作XML文档。Pull解析器是一种事件驱动的解析方法,与DOM(Document Object Model)和SAX(Simple API for XML)不同,它不需要将整个...

    PullXML和Json

    **PullXML** 是一种针对XML解析的优化方法,尤其适用于移动设备资源有限的环境。它采用事件驱动的模型,通过“拉”取XML文档中的元素来解析,而不是一次性加载整个文档。这大大节省了内存,提高了解析效率。Android_...

    android xml pull解析示例

    在Android系统中,XML Pull解析是一种轻量级且高效的解析XML文档的方法,它允许应用程序按需读取XML文档的节点,而无需加载整个文档到内存中。以下是关于Android XML Pull解析的详细知识讲解。 1. **XML Pull解析器...

    采用pull解析器解析和生成xml内容

    本篇文章将深入探讨如何在Android环境中使用内置的Pull解析器来解析和生成XML内容。 首先,我们需要理解什么是Pull解析器。Pull解析器是一种事件驱动的解析模型,它不像SAX解析器那样需要开发者提供回调方法,而是...

    用pullXML解析本地数据并存在本地

    PullXML解析器是Android系统提供的一种轻量级的XML解析方法,它适用于处理大量的XML数据,特别是当内存有限或需要高效处理流式数据时。本文将深入探讨如何使用PullXML解析本地XML数据,并将解析后的数据存回本地。 ...

    Android中采用Pull解析器读取和生成xml内容案例

    本案例将深入探讨如何使用Pull解析器读取和生成XML内容。 首先,理解XMLPullParser的工作原理至关重要。它通过移动到文档的不同事件(如START_TAG、END_TAG、TEXT等)来解析XML,这样开发者可以逐个处理元素,而不...

    Pull解析器解析和生成XML内容

    本文将详细介绍如何使用Pull解析器来解析和生成XML内容,这对于初学者来说是一个很好的起点。 首先,我们需要理解XML Pull解析器的工作原理。与SAX(Simple API for XML)和DOM(Document Object Model)解析器不同...

    android下的pull解析器解析和生成xml文件

    本篇将深入探讨Android下Pull解析器的使用,以及如何利用它来解析和生成XML文件。 一、Android Pull解析器简介 Pull解析器是基于事件驱动的解析模型,它不保留整个XML文档的内存映像,而是按需读取和处理XML元素。...

    XML文件解析PULL方法的学习

    @Introduction:使用PULL方法进行XML解析 XML文件存放在SDcard根目录下;android1.6版本之前是在/sdcard/,之后是在/mnt/sdcard/ 当前测试用来运行的版本是android。4.2.2 最小支持的版本是android.2.2.0 文件...

    Android ReadXmlByPull 使用Pull解析Xml文件.rar

    在Android开发中,处理XML数据是一项常见的任务,无论是从服务器获取数据还是本地资源文件,XML因其结构化的特点被广泛使用。本教程将详细介绍如何在Android中利用Pull解析器(PullParser)来读取XML文件,这是一种...

Global site tag (gtag.js) - Google Analytics