在android里面、pull解析应该是用到的非常多的、而每次给你一个xml让你解析、无数次的去重复几乎相同结构的代码、而感觉着实的有些无奈、而大部分作为C/S间交互用到的xml的文件格式大多都是相同的、有没有想象下、将解析这个繁琐的流程进行封装下、以便更好更方便的调用、好了、不多说、直接上封装好的代码:
/**
* 解析XML
* @param inputStream
* @param encoding
* @param startNode
* @param nodes
* @return
*/
public static List<HashMap<String,String>> parserXml(InputStream inputStream,String encoding,String startNode,String... nodes){
List<HashMap<String, String>> list = new ArrayList<HashMap<String,String>>();
HashMap<String, String> map = null;
try {
XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
parser.setInput(inputStream,encoding);
int evenType = parser.getEventType();
while (evenType!=XmlPullParser.END_DOCUMENT) {
String nodeName = parser.getName();
switch (evenType) {
case XmlPullParser.START_TAG:
if(startNode.equals(nodeName)){
map = new HashMap<String, String>();
}
for(int i=0;i<nodes.length;i++){
if(nodes[i].equalsIgnoreCase(nodeName)){
String temp = parser.nextText();
map.put(nodes[i],temp);
LogUtils.logI("节点:"+nodes[i]+"\t----------->\t"+temp);
}
}
break;
case XmlPullParser.END_TAG:
if(startNode.equals(nodeName)&&map!=null){
list.add(map);
}
break;
}
evenType = parser.next();
}
} catch (XmlPullParserException e) {
LogUtils.logE(CLAZZ, "解析出错:"+e.getMessage());
} catch (IOException e) {
LogUtils.logE(CLAZZ, "IO异常:"+e.getMessage());
}
return list;
}
上面的xml解析是通过传入的
InputStream来进行解析、也可以通过直接解析
String、要想直接解析String、可将上面传参改为String类型并将
parser.setInput(inputStream,encoding);改为
parser.setInput(new
StringReader(string));便可以直接解析字符串形式的xml文件、
ps:平时总结封装的这个pull解析方法、虽然这个通过pull解析xml的方法不是万能的、但是解决了正对于一般二级节点的xml解析、在开发的时候、针对于列表形式的xml解析、个人感觉用还是蛮爽的、若是喜欢封装、我想应该还可以封装的更完美些、只是暂时只想到封装到这种层次了、
分享到:
相关推荐
在Android系统中,XML Pull解析是一种轻量级且高效的解析XML文档的方法,它允许应用程序按需读取XML文档的节点,而无需加载整个文档到内存中。以下是关于Android XML Pull解析的详细知识讲解。 1. **XML Pull解析器...
该文章详细介绍了在Android环境下如何使用SAX和PULL解析XML,包括代码示例和步骤说明,对于初学者来说非常有帮助。 最后,压缩包中的"Weather"文件很可能是示例的天气预报XML数据。通过实际解析这个文件,你可以更...
本篇文章将深入探讨如何使用Pull解析器来读取XML文件,以及如何生成XML文件。Pull解析器是一种轻量级的解析方式,它允许程序在解析XML时按需获取数据,而不需要一次性加载整个文档到内存,从而提高了效率和资源利用...
在Android系统中,XML解析主要有两种方式:DOM解析和PULL解析。本文将深入探讨Android中的XML Pull解析,包括基本概念、使用方法以及本地和网络XML数据的处理。 一、XML Pull解析基础 XML Pull解析是一种事件驱动...
本文将深入探讨Android中的Pull解析XML技术,以及如何利用模板快速实现XML的解析。 首先,理解XML Pull解析器的工作原理是至关重要的。在Android中,XML Pull解析是一种轻量级处理XML文档的方式,它允许应用移动...
本文将深入探讨如何使用Pull解析器来解析和生成XML文件,特别关注Android环境下的应用。 ### Pull解析器概述 Pull解析器是一种事件驱动型的XML解析器,它允许开发者通过一系列的事件来读取和解析XML文档。与SAX...
在Android开发中,Pull解析是一种常用的XML解析方式,它提供了高效、线程安全的解析机制。本项目"android pull解析 创建xmlw文件"是一个完整的工程示例,旨在帮助开发者理解和应用XML Pull解析来创建XML文件,尤其是...
本文将深入探讨如何在Android中使用Pull解析器来处理XML文件,这是一种高效且节省资源的方式。 Pull解析器是Android提供的一个API,它允许应用程序通过事件驱动的方式解析XML文档。与SAX解析器类似,Pull解析器不...
而Pull解析器则是一种轻量级的、事件驱动的XML解析方式,特别适合于资源有限的移动设备或嵌入式系统。本文将详细介绍如何使用Pull解析器来处理XML数据,并结合Junit进行测试,确保解析和生成XML文件的正确性。 首先...
标题中的“pull解析器通用解析XML与生成XML”是指一种基于Pull解析模型处理XML文档的技术。在Android系统中,XML Pull解析器是一个轻量级、高效的解析XML文档的工具,它不需要DOM(Document Object Model)或者SAX...
Pull解析是一种轻量级的解析方式,适用于处理XML数据。本文将深入探讨Android中的Pull解析,以及如何利用它来解析本地的XML文件,包括天气信息和经纬度信息。 首先,让我们了解什么是Pull解析。Pull解析器...
在Android开发中,由于其轻量级和低内存占用,Pull解析器常常被用来解析XML文档,尤其是在处理大数据量时,相比DOM和SAX解析器更为高效。 Pull解析器是一种事件驱动的解析方式,它不会一次性加载整个XML文档到内存...
在Android开发中,由于其轻量级和高效的特点,Pull解析器成为了处理XML数据的一种常见方法。本篇文章将深入探讨如何在Android环境中使用内置的Pull解析器来解析和生成XML内容。 首先,我们需要理解什么是Pull解析器...
本文将深入探讨如何在Android中使用PULL解析器(Pull Parser)来解析XML文档,这是一种轻量级且高效的解析方式。 **PULL解析器概述** PULL解析器(Pull Parsing)是一种事件驱动的解析模型,它不需要完整的XML文档...
在Android开发中,由于其轻量级和高效的特点,XML Pull解析器成为处理XML文档的一种常见方法。本DEMO主要展示了如何在Android项目中使用XML Pull解析技术。 XML Pull解析器的工作方式是基于事件驱动的,它会读取XML...
本篇文章将详细探讨PULL解析器,它是Android平台特有的一种轻量级、事件驱动的XML解析方法。 1. **PULL解析器介绍** PULL解析器是Android SDK中内置的一种解析XML的机制,特别适合于资源有限的移动设备。它通过...
本文将深入探讨“Pull解析”这一技术,它是处理XML文档的一种高效方式,特别适合内存有限的设备。我们将讲解如何使用Pull解析器读取本地XML文件,并生成一个新的、格式不同的XML文件。 Pull解析是一种事件驱动的...
接下来,我们来看PULL解析,它是Android特有的解析方式,也基于事件驱动,但比SAX更轻量级,API设计更符合Android的编程风格。PULL解析器通过调用`PullParser`对象的`next()`方法,不断拉取下一个事件,直到没有更多...
在Android开发中,"13pull解析xml天气信息"是一个典型的任务,涉及到网络数据获取、XML解析以及用户界面展示等多个方面。在这个例子中,开发者通常会利用Android的Pull解析器来处理XML数据,从而获取并显示天气预报...
Android系统提供了一种轻量级的XML解析方式——PULL解析器(Pull Parser),它适用于处理大型XML文档,因为它不需要像DOM解析器那样一次性加载整个XML文档到内存中。PULL解析器通过事件驱动的方式,按需解析XML文档...