×

安卓怎么读取xml文件解析

安卓怎么读取xml文件解析(安卓xmlns)

admin admin 发表于2023-03-28 17:06:10 浏览57 评论0

抢沙发发表评论

本文目录一览:

android中XML文件是如何解析成View

简要概述

关于视图的解析过程。大概原理就是通过Layout Inf later的inflate方法,将一个xml布局文档用pull递归解析。然后判断标签,如果是merge,include等特殊处理。如果是view或者view group,就通过xml的tag找到指定类,反射new出来,然后add到parent。这里值得一提的是,为了抑制反射造成的效率损失,对反射出来的constructor做了一个map静态缓存,下次遇到了同名tag就不用反射了另外,xml从文件中预编译获取xml parser的过程也很复杂,在AssetManager有大量缓存(比如相同id的layout只获取一次,缓存xml block)与native方法,都是为了保证效率。

Android中LayoutInflate解析xml布局文件生成View树的过程

Android XML布局与View之间的转换

新手使用android的XML(DOM)解析问题,指定路径XML如何读取

一、在Android应用中的XML文件来源

1、本地xml文件

本地XML文件可以放在应用根目录assets文件夹、res/xml、res/raw、SDcard卡、应用的data目录等;

除res/xml可直接通过getXml(int id)获取XML文档,返回一个解析器对象(XmlResourceParer:XmlResourceParer是XmlPullParser的子类),其它位置情况都可以获取XML文档,返回一个Inputstream对象,进行读取数据,获取方法分别如下:-安卓怎么读取xml文件解析

a.在res/xml目录下(推荐使用):

[java] view plaincopy

XmlResourceParser xmlParser = this.getResources().getXml(R.xml.XXX);

b.在res/xml、res/raw目录下:

[java] view plaincopy

InputStream inputStream = this.getResources().openRawResource(R.xml.XXX);

c.在assets文件夹下(本人测试发现通过此方法获取的XML文档不能带有首行:?xml version="1.0" encoding="utf-8"?,否则解析报错,具体原因未查明,知道原因请回复交流):-安卓怎么读取xml文件解析

[java] view plaincopy

InputStream inputStream = getResources().getAssets().open(fileName);

d.在应用指定目录下(SDcard,应用data目录等):

[java] view plaincopy

// path路径根据实际项目修改,此次获取SDcard根目录

String path = Environment.getExternalStorageDirectory().toString();

File xmlFlie = new File(path+fileName);

InputStream inputStream = new FileInputStream(xmlFlie);

2、通过url得到的xml文件

很多时候需要解析xml文件都用于客户端与服务器之间的数据交互,比如解析google天气预报信息,或自己项目内定的一些XML数据结构,其中通过URL,使用DefaultHTTPClient get请求获取XML文件方法如下:-安卓怎么读取xml文件解析

[java] view plaincopy

/**

* 读取url的xml资源 转成String

* @param url

* @return 返回 读取url的xml字符串

*/

public String getStringByUrl(String url) {

String outputString = "";

// DefaultHttpClient

DefaultHttpClient httpclient = new DefaultHttpClient();

// HttpGet

HttpGet httpget = new HttpGet(url);

// ResponseHandler

ResponseHandlerString responseHandler = new BasicResponseHandler();

try {

outputString = httpclient.execute(httpget, responseHandler);

outputString = new String(outputString.getBytes("ISO-8859-1"), "utf-8"); // 解决中文乱码

Log.i("HttpClientConnector", "连接成功");

} catch (Exception e) {

Log.i("HttpClientConnector", "连接失败");

e.printStackTrace();

}

httpclient.getConnectionManager().shutdown();

return outputString;

}

二、XML文件的解析方式

能够运用在Android系统上解析XML文件的常用有三种方式:DOM、SAX和PULL,其中DOM解析XML是先把XML文件读进内存中,再通过接口获取数据,该方法使用相对小的XML文件,移动设备往往受硬件性能影响,如果XML文件比较大使用DOM解析往往效率跟不上;SAX和PULL都是采用事件驱动方式来进行解析,在Android中的事件机制是基于回调函数。-安卓怎么读取xml文件解析

本例旨在考虑简单方便性,综合考虑选择了PULL解析,PULL解析器是一个开源项目,Android平台已经内置了PULL解析器,同时Android系统本身也是使用PULL解析器来解析各种XML文档。-安卓怎么读取xml文件解析

1、事件回调类型

PULL解析XML文件时,回调XmlResourceParser内定义表示文档开头结束和节点开头结束的数值(事件回调类型),表示如下:

a.读取到XML文档开头(声明)返回:XmlPullParser.START_DOCUMENT(0)

b.读取到XML文档结束返回:XmlPullParser.END_DOCUMENT (1)

c.读取到XML节点开始返回:XmlPullParser.START_TAG (2)

d.读取到XML节点结束返回:XmlPullParser.END_TAG (3)

e.读取到XML文本返回:XmlPullParser.TEXT (4)

2、XmlPullParser有几个主要方法(更多查阅Android APIs):

a.XmlPullParser.getEventType() : Returns the type of the current event (START_TAG, END_TAG, TEXT, etc.) 【获取当前事件回调类型】-安卓怎么读取xml文件解析

b.XmlPullParser.getName():For START_TAG or END_TAG events, the (local) name of the current element is returned when namespaces are enabled.【获取当前节点名字】-安卓怎么读取xml文件解析

c.XmlPullParser.getAttributeValue(int index):Returns the given attributes value.【根据id获取节点属性值】

d.XmlPullParser.getAttributeValue(String namespace, String name):Returns the attributes value identified by namespace URI and namespace localName.【根据name获取节点属性值】-安卓怎么读取xml文件解析

e.XmlPullParser.netxText():If current event is START_TAG then if next element is TEXT then element content is returned or if next event is END_TAG then empty string is returned, otherwise exception is thrown.【回调节点START_TAG时,通过此方法获取节点内容】-安卓怎么读取xml文件解析

3、实际编码中如何使用

在实际编码中,主要根据事件回调类型,结合被解析的XML结构进行解析提取数据,PULL解析XML文件的主要模式如下,更具体使用看本文提供的例子:

[java] view plaincopy

try {

//开始解析事件

int eventType = parser.getEventType();

//处理事件,不碰到文档结束就一直处理

while (eventType != XmlPullParser.END_DOCUMENT) {

//因为定义了一堆静态常量,所以这里可以用switch

switch (eventType) {

case XmlPullParser.START_DOCUMENT:

// 不做任何操作或初开始化数据

break;

case XmlPullParser.START_TAG:

// 解析XML节点数据

// 获取当前标签名字

String tagName = parser.getName();

if(tagName.equals("XXXTAGXXX")){

// 通过getAttributeValue 和 netxText解析节点的属性值和节点值

}

break;

case XmlPullParser.END_TAG:

// 单节点完成,可往集合里边添加新的数据

break;

case XmlPullParser.END_DOCUMENT:

break;

}

// 别忘了用next方法处理下一个事件,不然就会死循环

eventType = parser.next();

}

} catch (XmlPullParserException e) {

e.printStackTrace();

}catch (IOException e) {

e.printStackTrace();

}

怎样查看 Android APP源代码?

将apk文件拷贝至sdcard上。

命令顺序如下:

进入Android sdk文件夹/tools目录下

输入adb shell

输入su

输入cd data

输入cd app

这时就可以看到你安装的所有的apk文件。输入cp 空格 对应的apk 空格 /sdcard/

这样就将apk文件拷贝出来了。

将apk文件后缀直接变成rar格式,可以看到熟悉的目录结构了,

其中xml文件打开后都是二进制的,无法查看。

这时就用到了一个android4me的AXMLPrinter2工具。(请自行百度搜索)

输入以下命令,将xml文件解析出来

java -jar AXMLPrinter2.jar showtimes_list.xml

此命令是在命令行中查看此showtimes_list.xml

将showtimes_list.xml生成xml文件,则输入以下命令:

java -jar AXMLPrinter2.jar showtimes_list.xml h.xml

目前进行到这一步,只能看到xml文件的内容,其工程中的java源文件还是看不到,看目录结构下有一个classes.dex文件,我们需要将dex文件变为jar文件。

这里用到了另一个工具dex2jar。(自行搜索下载)

在Windows下解压之后的目录如下图所示:

在命令行中,进入到此目录下:

在Windows下,输入以下命令:

dex2jar.bat c:\classes.dex

运行完之后,在C盘会多一个classes.dex.dex2jar.jar文件,此文件就是我们需要的jar文件。

利用jd-gui,将jar文件反向工程为java代码。(请自行搜索下载)

它分为Windows、Linux、和max三个版本,这里我下载的是Windows版本的。

解压之后,双击运行exe文件,选择classes.dex.dex2jar.jar文件,相应的jar文件中的Java文件就被反向工程显示出来了!

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。 [1]  2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。-安卓怎么读取xml文件解析

Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l'Isle-Adam)在1886年发表的科幻小说《未来夏娃》(L'ève future)中。他将外表像人的机器起名为Android。-安卓怎么读取xml文件解析

Android的Logo是由Ascender公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号, [1]  于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,Android小机器人便诞生了。其中的文字使用了Ascender公司专门制作的称之为“Droid ” 的字体。Android是一个全身绿色的机器人,绿色也是Android的标志。颜色采用了PMS 376C和RGB中十六进制的#A4C639来绘制,这是Android操作系统的品牌象徵。有时候,它们还会使用纯文字的Logo。-安卓怎么读取xml文件解析

android 怎么读取res下的xml

相当于读取res下面的文件,读取成string类型,然后在通过xml解析器解析就行。下面是读取res下面文件的例子,请看截图,例子来自android学习手册,android学习手册,里面有源码。android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行,源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。360手机助手中下载,图标上有贝壳-安卓怎么读取xml文件解析

方法一、将要读取的txt文件拷贝到Android工程目录下的assets文件夹下

方法二、在res文件夹下新建raw文件夹,将txt拷贝到该目录下

本方法是从assets中读取

/**

* 从assets中读取txt

*/

private void readFromAssets() {

try {

InputStream is = getAssets().open("qq.txt");

String text = readTextFromSDcard(is);

textView.setText(text);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

本方法是从raw中读取

/**

* 从raw中读取txt

*/

private void readFromRaw() {

try {

InputStream is = getResources().openRawResource(R.raw.qq);

String text = readTextFromSDcard(is);

textView.setText(text);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

本方法是解析输入流,返回txt中的字符串

/**

* 按行读取txt

*

* @param is

* @return

* @throws Exception

*/

private String readTextFromSDcard(InputStream is) throws Exception {

InputStreamReader reader = new InputStreamReader(is);

BufferedReader bufferedReader = new BufferedReader(reader);

StringBuffer buffer = new StringBuffer("");

String str;

while ((str = bufferedReader.readLine()) != null) {

buffer.append(str);

buffer.append("\n");

}

return buffer.toString();

}

怎么用手机打开安卓应用里后缀是xml的文件

打开.xml文件的时候,选择"ES文本阅读器"打开就可以了

.XML文件由于内容过于简单仅仅是展示数据。所以通常作为文本的形式而存在。事实上这也真是XML与其他数据表现形式最大的不同之处:他极其简单。

这是一个看上去有点琐细的优点,但正是这点使XML与众不同。XML的简单使其易于在任何应用程序中读写数据。而我们要打开.xml文件时只需要通过阅读器打开即可。

第一步:找到这个XML文件

第二步:选择使用ES文本阅读器打开

扩展资料:

在xml之前较为流行的文件格式为SGML,随着时代的发展,人们对SGML进行了简化衍生出HTML。HTML简单,在初期没有任何定义文档外观的相关方法,仅用来在浏览器里显示网页文件。而后,随着因特网的发展,人们为了控制其文件样式,扩充了描述如何显现数据的卷标随即发展为了XML。-安卓怎么读取xml文件解析

Android:怎么解析这段xml

本文主要讲解Android开发中如何对XML文件的解析,由于XML文件具有与平台无关,广泛应用于数据通信中,因此解析XML文件就显得很有意义。Android对XML文件解析的方法主要有3种。 通常有三种方式:DOM、SAX和PULL,下面就分别针对这三种方式来进行讨论。-安卓怎么读取xml文件解析

文件内容如下所示:

那么就是要对此XML文件做解析。下面我们就分别用DOM,SAX和PULL三种方式,分别对此XML文件做解析。

DOM方式

DOM方式解析xml是先把xml文档都读到内存中,然后再用DOM API来访问树形结构,并获取数据。由DOM解析的方式可以知道,如果XML文件很大的时候,处理效率就会变得比较低,这也是DOM方式的一个缺点。-安卓怎么读取xml文件解析

现在我们来解析上文中提到的有关天气预报信息相关的xml文件。什么是解析呢?说的通俗一点,就是将这个带标签的XML文件识别出来,并抽取一些相关的,对我们有用的信息来给我们使用。那在这个文件里,时间,天气,温度,以及图标对我们来说是需要得到的。我们要对其做解析。-安卓怎么读取xml文件解析

解析的具体思路是:

1. 将XML文件加载进来。

2. 获取文档的根节点

3. 获取文档根节点中所有子节点的列表

4. 获取子节点列表中需要读取的节点信息

根据这4个步骤,我们进行开发:

首先就是如何加载XML文件,假设此文件来源于网络。

SAX方式

SAX是Simple API for XML的缩写。是一个包也可以看成是一些接口。

相比于DOM而言SAX是一种速度更快,更有效,占用内存更少的解析XML文件的方法。它是逐行扫描,可以做到边扫描边解析,因此SAX可以在解析文档的任意时刻停止解析。非常适用于Android等移动设备。

SAX是基于事件驱动的。所谓事件驱动就是说,它不用解析完整个文档,在按内容顺序解析文档过程中,SAX会判断当前读到的字符是否符合XML文件语法中的某部分。如果符合某部分,则会触发事件。所谓触发事件,就是调用一些回调方法。当然android的事件机制是基于回调方法的,在用SAX解析xml文档时候,在读取到文档开始和结束标签时候就会回调一个事件,在读取到其他节点与内容时候也会回调一个事件。在SAX接口中,事件源是org.xml.sax包中的XMLReader,它通过parser()方法来解析XML文档,并产生事件。事件处理器是org.xml.sax包中ContentHander、DTDHander、ErrorHandler,以及EntityResolver这4个接口。-安卓怎么读取xml文件解析

这四个接口的详细说明如下:

事件处理器名称

事件处理器处理的事件

XMLReader注册方法

ContentHander

XML文档的开始与结束,

XML文档标签的开始与结束,接收字符数据,跳过实体,接收元素内容中可忽略的空白等。

setContentHandler(ContentHandler h)

DTDHander

处理DTD解析时产生的相应事件

setDTDHandler(DTDHandler h)

ErrorHandler

处理XML文档时产生的错误

setErrorHandler(ErrorHandler h)

EntityResolver

处理外部实体

setEntityResolver(EntityResolver e)

我们用来做内容解析的回调方法一般都定义在ContentHandler接口中。

ContentHandler接口常用的方法:

startDocument()

当遇到文档的开头的时候,调用这个方法,可以在其中做一些预处理的工作。

endDocument()

当文档结束的时候,调用这个方法,可以在其中做一些善后的工作。

startElement(String namespaceURI, String localName,String qName, Attributes atts)

当读到开始标签的时候,会调用这个方法。namespaceURI就是命名空间,localName是不带命名空间前缀的标签名,qName是带命名空间前缀的标签名。通过atts可以得到所有的属性名和相应的值。-安卓怎么读取xml文件解析

endElement(String uri, String localName, String name)

在遇到结束标签的时候,调用这个方法。

characters(char[] ch, int start, int length)

这个方法用来处理在XML文件中读到的内容。例如:high data="30"/主要目的是获取high标签中的值。

第一个参数用于存放文件的内容,后面两个参数是读到的字符串在这个数组中的起始位置和长度,使用new String(ch,start,length)就可以获取内容。

注意:

SAX的一个重要特点就是它的流式处理,当遇到一个标签的时候,它并不会纪录下之前所碰到的标签,即在startElement()方法中,所有能够知道的信息,就是标签的名字和属性,至于标签的嵌套结构,上层标签的名字,是否有子元属等等其它与结构相关的信息,都是不知道的,都需要你的程序来完成。这使得SAX在编程处理上没有DOM方便。-安卓怎么读取xml文件解析

现在我们截取一段XML文件来做解析,其调用方法是这样的:

?xml version="1.0"? ---------- startDocument()

weather ---------- startElement

forecast_information ---------- startElement

city ---------- startElement

beijing ---------- characters

/city ---------- endElement

/forecast_information ---------- endElement

/weather ---------- endElement

文档结束 ---------- endDocument()

SAX的解析步骤:

首先需要注意的是:

SAX还为其制定了一个Helper类:DefaultHandler它实现了ContentHandler这个接口,但是其所有的方法体都为空,在实现的时候,你只需要继承这个类,然后重载相应的方法即可。

使用SAX解析XML文件一般有以下五个步骤:

1、创建一个SAXParserFactory对象;

2、调用SAXParserFactory中的newSAXParser方法创建一个SAXParser对象;

3、然后在调用SAXParser中的getXMLReader方法获取一个XMLReader对象;

4、实例化一个DefaultHandler对象

5、连接事件源对象XMLReader到事件处理类DefaultHandler中

6、调用XMLReader的parse方法从输入源中获取到的xml数据

7、通过DefaultHandler返回我们需要的数据集合。

我们仍然来解析上述那个天气预报的XML文件。

编写代码如下:

[java] view plaincopy

mySAX.setOnClickListener(new Button.OnClickListener(){

@Override

public void onClick(View v) {

try{

String url = ";weather=beijing";

DefaultHttpClient client = new DefaultHttpClient();

HttpUriRequest req = new HttpGet(url);

HttpResponse resp = client.execute(req);

HttpEntity ent = resp.getEntity();

InputStream stream = ent.getContent(); //将文件导入流,因此用InputStream

SAXParserFactory saxFactory = SAXParserFactory.newInstance(); //获取一个对象

SAXParser saxParser = saxFactory.newSAXParser();//利用获取到的对象创建一个解析器

XMLContentHandler handler = new XMLContentHandler();//设置defaultHandler

saxParser.parse(stream, handler);//进行解析

stream.close();//关闭流

/*XMLReader xmlReader = saxFactory.newSAXParser().getXMLReader(); //获取一个XMLReader

xmlReader.setContentHandler(handler);

xmlReader.parse(new InputSource(stream));

stream.close();*/

}catch(Exception e){

e.printStackTrace();

}

}

});

}

public class XMLContentHandler extends DefaultHandler {

private static final String TAG = "XMLContentHandler";

@Override

public void characters(char[] ch, int start, int length)

throws SAXException {

Log.i(TAG, "解析内容:"+new String(ch,start,length));

}

@Override

public void endDocument() throws SAXException {

super.endDocument();

Log.i(TAG, "文档解析完毕。");

}

@Override

public void endElement(String uri, String localName, String qName)

throws SAXException {

Log.i(TAG, localName+"解析完毕");

}

@Override

public void startDocument() throws SAXException {

Log.i(TAG, "开始解析... ...");

}

@Override

public void startElement(String uri, String localName, String qName,

Attributes attributes) throws SAXException {

Log.i(TAG, "解析元素:"+localName);

if(localName.equals("high")){

Log.i(TAG, "解析元素:"+localName);

i++;

if(i==2){

highestTmp.setText(String.valueOf((Integer.parseInt(attributes.getValue(0))-32)*5/9));

}

}

}

}

上面的那段注释:

[java] view plaincopy

/*XMLReader xmlReader =saxFactory.newSAXParser().getXMLReader(); //获取一个XMLReader

xmlReader.setContentHandler(handler);

xmlReader.parse(newInputSource(stream));

stream.close();*/

是用XMLReader来做解析的另外一种方法。效果是一样的。这里可以传流,也可以传一个字符串,如下所示:是传字符串。

[java] view plaincopy

xmlReader.parse(new InputSource(new StringReader(xmlStr)));

PULL方式

除了可以使用 SAX和DOM解析XML文件,也可以使用Android内置的Pull解析器解析XML文件。 Pull解析器的运行方式与 SAX 解析器相似。它也是事件触发的。Pull解析方式让应用程序完全控制文档该怎么样被解析。比如开始和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。通过Parser.getEventType()方法来取得事件的代码值,解析是在开始时就完成了大部分处理。事件将作为数值代码被发送,因此可以使用一个switch对感兴趣的事件进行处理。-安卓怎么读取xml文件解析

Pull解析是一个遍历文档的过程,每次调用next(),nextTag(), nextToken()和nextText()都会向前推进文档,并使Parser停留在某些事件上面,但是不能倒退。然后把文档设置给Parser。-安卓怎么读取xml文件解析

Android中对Pull方法提供了支持的API,主要是

org.xmlpull.v1.XmlPullParser;

org.xmlpull.v1.XmlPullParserFactory;

二个类,其中主要使用的是XmlPullParser,XmlPullParserFactory是一个工厂,用于构建XmlPullParser对象。

应用程序通过调用XmlPullParser.next()等方法来产生Event,然后再处理Event。

我们仍然拿上述天气预报的XML文件的一部分来做例子。

例如:需要解析的XML文件是:

[java] view plaincopy

forecast_conditions

day_of_week data="周三"/

low data="22"/

high data="29"/

icon data="/ig/images/weather/chance_of_rain.gif"/

condition data="可能有雨"/

/forecast_conditions

这部分XML文件中day_of_week,low,high等是TAG,data是ATTRIBUTEA。当然,如果有/夹在开始和结束符号之间的部分,则为TXET。

要想解析文档先要构建一个XmlPullParser对象。

[java] view plaincopy

final XmlPullParserFactory factory = XmlPullParserFactory.newInstance();

factory.setNamespaceAware(true);

final XmlPullParser parser = factory.newPullParser();

parser.setInput(new StringReader("xmlStr");

这里的xmlStr就是上边的XML文件。

此时,文档刚被初始化,所以它应该位于文档的开始,事件为START_DOCUMENT,可以通过XmlPullParser.getEventType()来获取。然后调用next()会产生

START_TAG,这个事件告诉应用程序一个标签已经开始了,调用getName()会返回" day_of_week ";若有TEXT,则再next()会产生TEXT事件,调用getText()会返回TEXT,由于此处没有,所以再next(),会产生END_TAG,这个告诉你一个标签已经处理完了,再next()直到最后处理完TAG,会产生END_DOCUMENT,它告诉你整个文档已经处理完成了。除了next()外,nextToken()也可以使用,只不过它会返回更加详细的事件,比如COMMENT, CDSECT, DOCDECL, ENTITY等等非常详细的信息。如果程序得到比较底层的信息,可以用nextToken()来驱动并处理详细的事件。需要注意一点的是TEXT事件是有可能返回空白的White Spaces比如换行符或空格等。-安卓怎么读取xml文件解析

nextTag()--会忽略White Spaces,如果可以确定下一个是START_TAG或END_TAG,就可以调用nextTag()直接跳过去。通常它有二个用处:当START_TAG时,如果能确定这个TAG含有子TAG,那么就可以调用nextTag()产生子标签的START_TAG事件;当END_TAG时,如果确定不是文档结尾,就可以调用nextTag()产生下一个标签的START_TAG。在这二种情况下如果用next()会有TEXT事件,但返回的是换行符或空白符。-安卓怎么读取xml文件解析

nextText()--只能在START_TAG时调用。当下一个元素是TEXT时,TEXT的内容会返回;当下一个元素是END_TAG时,也就是说这个标签的内容为空,那么空字串返回;这个方法返回后,Parser会停在END_TAG上。-安卓怎么读取xml文件解析

小结一下,如果在一个XML文档中我们只需要前面一部分数据,但是使用SAX方式或DOM方式会对整个文档进行解析,尽管XML文档中后面的大部分数据我们其实都不需要解析,因此这样实际上就浪费了处理资源。使用PULL方式正合适。-安卓怎么读取xml文件解析

当点击三种方式的任何一个按钮时,均能够得到相同的结果