Android解析XML文件

Android XML文件读取解析三种方式 XML文件读取解析 阅读详情
一、在Android应用中的XML文件来源
1、本地xml文件
    本地XML文件可以放在应用根目录assets文件夹、res/xml、res/raw、SDcard卡、应用的data目录等;
除res/xml可直接通过getXml(int id)获取XML文档,返回一个解析器对象(XmlResourceParer: XmlResourceParer是XmlPullParser的子类),其它位置情况都可以获取XML文档,返回一个Inputstream对象,进行读取数据,获取方法分别如下:
a.在res/xml目录下(推荐使用):
[java]  view plain copy
  1. XmlResourceParser xmlParser = this.getResources().getXml(R.xml.XXX);  

b.在res/xml、res/raw目录下:
[java]  view plain copy
  1. InputStream inputStream = this.getResources().openRawResource(R.xml.XXX);  

c.在assets文件夹下(本人测试发现通过此方法获取的XML文档不能带有首行:<?xml version="1.0" encoding="utf-8"?>,否则解析报错,具体原因未查明,知道原因请回复交流):
[java]  view plain copy
  1. InputStream inputStream = getResources().getAssets().open(fileName);  

d.在应用指定目录下(SDcard,应用data目录等):
[java]  view plain copy
  1. // path路径根据实际项目修改,此次获取SDcard根目录  
  2. String path = Environment.getExternalStorageDirectory().toString();  
  3. File xmlFlie = new File(path+fileName);  
  4. InputStream inputStream = new FileInputStream(xmlFlie);  


2、通过url得到的xml文件
    很多时候需要解析xml文件都用于客户端与服务器之间的数据交互,比如解析google天气预报信息,或自己项目内定的一些XML数据结构,其中通过URL,使用DefaultHTTPClient get请求获取XML文件方法如下:
[java]  view plain copy
  1. /** 
  2.  * 读取url的xml资源 转成String 
  3.  * @param url 
  4.  * @return 返回 读取url的xml字符串 
  5.  */  
  6. public String getStringByUrl(String url) {  
  7.     String outputString = "";  
  8.     // DefaultHttpClient  
  9.     DefaultHttpClient httpclient = new DefaultHttpClient();  
  10.     // HttpGet  
  11.     HttpGet httpget = new HttpGet(url);  
  12.     // ResponseHandler  
  13.     ResponseHandler<String> responseHandler = new BasicResponseHandler();  
  14.   
  15.     try {  
  16.         outputString = httpclient.execute(httpget, responseHandler);  
  17.         outputString = new String(outputString.getBytes("ISO-8859-1"), "utf-8");    // 解决中文乱码  
  18.   
  19.         Log.i("HttpClientConnector", "连接成功");  
  20.     } catch (Exception e) {  
  21.         Log.i("HttpClientConnector", "连接失败");  
  22.         e.printStackTrace();  
  23.     }  
  24.     httpclient.getConnectionManager().shutdown();  
  25.     return outputString;  
  26. }  




二、XML文件的解析方式
    能够运用在Android系统上解析XML文件的常用有三种方式:DOM、SAX和PULL,其中DOM解析XML是先把XML文件读进内存中,再通过接口获取数据,该方法使用相对小的XML文件,移动设备往往受硬件性能影响,如果XML文件比较大使用DOM解析往往效率跟不上;SAX和PULL都是采用事件驱动方式来进行解析,在Android中的事件机制是基于回调函数。
    本例旨在考虑简单方便性,综合考虑选择了PULL解析,PULL解析器是一个开源项目,Android平台已经内置了PULL解析器,同时Android系统本身也是使用PULL解析器来解析各种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.) 【获取当前事件回调类型】
b.XmlPullParser. getName():For START_TAG or END_TAG events, the (local) name of the current element is returned when namespaces are enabled.【获取当前节点名字】
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获取节点属性值】
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时,通过此方法获取节点内容】

3、实际编码中如何使用
    在实际编码中,主要根据事件回调类型,结合被解析的XML结构进行解析提取数据,PULL解析XML文件的主要模式如下,更具体使用看本文提供的例子:
[java]  view plain copy
  1. try {  
  2.     //开始解析事件  
  3.     int eventType = parser.getEventType();  
  4.   
  5.     //处理事件,不碰到文档结束就一直处理  
  6.     while (eventType != XmlPullParser.END_DOCUMENT) {   
  7.         //因为定义了一堆静态常量,所以这里可以用switch  
  8.         switch (eventType) {  
  9.             case XmlPullParser.START_DOCUMENT:  
  10.                 // 不做任何操作或初开始化数据  
  11.                 break;  
  12.   
  13.             case XmlPullParser.START_TAG:  
  14.                 // 解析XML节点数据  
  15.                 // 获取当前标签名字  
  16.                 String tagName = parser.getName();  
  17.   
  18.                 if(tagName.equals("XXXTAGXXX")){  
  19.   
  20.                     // 通过getAttributeValue 和 netxText解析节点的属性值和节点值  
  21.   
  22.                 }  
  23.                 break;  
  24.   
  25.             case XmlPullParser.END_TAG:  
  26.                 // 单节点完成,可往集合里边添加新的数据  
  27.                 break;  
  28.             case XmlPullParser.END_DOCUMENT:  
  29.   
  30.                 break;  
  31.         }  
  32.   
  33.         // 别忘了用next方法处理下一个事件,不然就会死循环  
  34.         eventType = parser.next();  
  35.     }  
  36. } catch (XmlPullParserException e) {  
  37.     e.printStackTrace();  
  38. }catch (IOException e) {  
  39.     e.printStackTrace();  
  40. }  





三、运用例子
    本例主要是解析我国省市的XML文件,文件结构简单,本例采用资源数据地址:http://www.csw333.com/CityScene_I/getPlace.php,关于XML的结构基础之类的就不再累赘,实际项目中,根据XML文件的节点结果来进行变换,主要修改case XmlPullParser.START_TAG部分代码。



    1.本例在获取XML文件的省份中,比较了获取三个不同位置的XML文件资源的读取方式;
    2.再获取url上的XML文件时,返回的字符串进行utf-8转码,避免中文乱码(本例采用的url资源数据需要转码);
    3.针对实际项目中,若xml文件过大,可以使用多线程进行解析,避免ANR,若解析时间较长,可以添加滚动提示;
    4.本例存在个Bug,根据例子使用的XML文件结构把直辖市也编进省份中,例子目的是解析XML文件,实际项目是需要避免;
    5. 主要代码:
      a.各种获取XML文件资源方式

[java]  view plain copy
  1. /** 
  2.  * 同样删除首行,才能解析成功, 
  3.  * @param fileName 
  4.  * @return 返回xml文件的inputStream 
  5.  */       
  6. public InputStream getInputStreamFromAssets(String fileName){  
  7.     try {  
  8.         InputStream inputStream = getResources().getAssets().open(fileName);  
  9.         return inputStream;  
  10.     } catch (IOException e) {  
  11.         e.printStackTrace();  
  12.     }  
  13.     return null;  
  14. }  
  15.   
  16. /** 
  17.  * 读取XML文件,xml文件放到res/xml文件夹中,若XML为本地文件,则推荐该方法 
  18.  *  
  19.  * @param fileName 
  20.  * @return : 读取到res/xml文件夹下的xml文件,返回XmlResourceParser对象(XmlPullParser的子类) 
  21.  */  
  22. public XmlResourceParser getXMLFromResXml(String fileName){  
  23.     XmlResourceParser xmlParser = null;  
  24.     try {  
  25.         //*/  
  26.         //  xmlParser = this.getResources().getAssets().openXmlResourceParser("assets/"+fileName);        // 失败,找不到文件  
  27.         xmlParser = this.getResources().getXml(R.xml.provinceandcity);  
  28.         /*/  
  29.         // xml文件在res目录下 也可以用此方法返回inputStream  
  30.         InputStream inputStream = this.getResources().openRawResource(R.xml.provinceandcity);  
  31.         /*/ 
  32.         return xmlParser; 
  33.     } catch (Exception e) {  
  34.         e.printStackTrace();  
  35.     } 
  36.     return xmlParser; 
  37. } 
  38.  
  39. /** 
  40.  * 读取url的xml资源 转成String 
  41.  * @param url 
  42.  * @return 返回 读取url的xml字符串 
  43.  */  
  44. public String getStringByUrl(String url) {  
  45.     String outputString = "";  
  46.     // DefaultHttpClient  
  47.     DefaultHttpClient httpclient = new DefaultHttpClient();  
  48.     // HttpGet  
  49.     HttpGet httpget = new HttpGet(url);  
  50.     // ResponseHandler  
  51.     ResponseHandler<String> responseHandler = new BasicResponseHandler();  
  52.   
  53.     try {  
  54.         outputString = httpclient.execute(httpget, responseHandler);  
  55.         outputString = new String(outputString.getBytes("ISO-8859-1"), "utf-8");    // 解决中文乱码  
  56.   
  57.         Log.i("HttpClientConnector", "连接成功");  
  58.     } catch (Exception e) {  
  59.         Log.i("HttpClientConnector", "连接失败");  
  60.         e.printStackTrace();  
  61.     }  
  62.     httpclient.getConnectionManager().shutdown();  
  63.     return outputString;  
  64. }  
  65.   
  66. /** 
  67.  * 解析SDcard xml文件 
  68.  * @param fileName 
  69.  * @return 返回xml文件的inputStream 
  70.  */       
  71. public InputStream getInputStreamFromSDcard(String fileName){  
  72.     try {  
  73.         // 路径根据实际项目修改  
  74.         String path = Environment.getExternalStorageDirectory().toString() + "/test_xml/";  
  75.   
  76.         Log.v("", "path : " + path);  
  77.   
  78.         File xmlFlie = new File(path+fileName);  
  79.   
  80.         InputStream inputStream = new FileInputStream(xmlFlie);  
  81.   
  82.         return inputStream;  
  83.     } catch (IOException e) {  
  84.         e.printStackTrace();  
  85.     }  
  86.     return null;  
  87. }  


 

      b.多线程解析:

[java]  view plain copy
  1. /** 
  2.  *  多线程加载网络端的xml,若xml文件过大也需要用该方式加载 
  3.  */  
  4. Handler mHandler = new Handler();     
  5. Runnable mRunnable = new Runnable() {  
  6.     public void run() {  
  7.         if(!isFinishParser){  
  8.   
  9.             mHandler.postDelayed(mRunnable, 1000);      
  10.         }else{  
  11.             showView.setText(provinceStr);  
  12.             mHandler.removeCallbacks(mRunnable);  
  13.         }  
  14.     }  
  15. };  
  16.   
  17. /** 
  18.  * 比较耗时操作新建一个线程,避免UI线程ANR 
  19.  */  
  20. public void parserWhitThread(){  
  21.     new Thread(){  
  22.         @Override  
  23.         public void run() {                  
  24.             provinceandcityStr = getStringByUrl(provinceAndCityUrl);  
  25.             provinceArray = ProvincePullParse.Parse(provinceandcityStr);  
  26.             for(Province pro : provinceArray){  
  27.                 provinceStr += pro.getProvinceId() + " : " +pro.getProvinceName()+"\n";  
  28.             }  
  29.             isFinishParser = true;  
  30.         }  
  31.     }.start();  
  32. }  




      c.从XML文件中解析出城市:
[java]  view plain copy
  1. public static ArrayList<City> ParseXml(XmlPullParser parser){  
  2.     ArrayList<City> CityArray = new ArrayList<City>();  
  3.     City CityTemp = null;  
  4.     int provinceId = 0;  
  5.     int cityId;  
  6.     String cityName;  
  7.   
  8.     try {  
  9.         //开始解析事件  
  10.         int eventType = parser.getEventType();  
  11.   
  12.         //处理事件,不碰到文档结束就一直处理  
  13.         while (eventType != XmlPullParser.END_DOCUMENT) {  
  14.             //因为定义了一堆静态常量,所以这里可以用switch  
  15.             switch (eventType) {  
  16.                 case XmlPullParser.START_DOCUMENT:  
  17.                     break;  
  18.   
  19.                 case XmlPullParser.START_TAG:  
  20.   
  21.                     //给当前标签起个名字  
  22.                     String tagName = parser.getName();  
  23.                     //  Log.d("", "====XmlPullParser.START_TAG=== tagName: " + tagName);  
  24.   
  25.                     if(tagName.equals("province")){  
  26.                          
  27.                         provinceId = Integer.parseInt(parser.getAttributeValue(0));  
  28.                     }else if(tagName.equals("item")){  
  29.                         CityTemp = new City();  
  30.                     }else if(tagName.equals("id")){  
  31.                         cityId = Integer.parseInt(parser.nextText());                              
  32.                         parser.next();  
  33.                         cityName = parser.nextText();  
  34.                           
  35.                         Log.v("", "id getText: "+cityId);  
  36.                         Log.v("", "name getText: "+cityName);                              
  37.                         Log.e("", "=========================");  
  38.                           
  39.                         CityTemp.setProvinceId(provinceId);  
  40.                         CityTemp.setCityId(cityId);  
  41.                         CityTemp.setCityName(cityName);  
  42.                           
  43.                         CityArray.add(CityTemp);  
  44.                     }  
  45.                     break;  
  46.   
  47.                 case XmlPullParser.END_TAG:  
  48.                     break;  
  49.                 case XmlPullParser.END_DOCUMENT:  
  50.                     break;  
  51.             }  
  52.   
  53.             //别忘了用next方法处理下一个事件,忘了的结果就成死循环#_#  
  54.             eventType = parser.next();  
  55.         }  
  56.     } catch (XmlPullParserException e) {  
  57.         // TODO Auto-generated catch block  
  58.         e.printStackTrace();  
  59.     }catch (IOException e) {  
  60.         // TODO Auto-generated catch block  
  61.         e.printStackTrace();  
  62.     }  
  63.   
  64.     return CityArray;  
  65. }  

源码下载:

参考引用
2.android解析xml文件的三种方式: http://www.cnblogs.com/zhangdongzi/archive/2011/04/14/2016434.html
Android 中 解析 XML 文件的几种方式 根据 book.xml 内容定义配套的数据类:DOM 解析:适合解析较小的 XML 文件,可以方便地访问和修改 XML 的任意部分。SAX 解析:适合解析较大的 XML 文件,内存占用低,解析速度快。Pull 解析:适合Android 环境,性能好,内存占用低,解析速度快。根据你的具体需求选择合适的解析方式。如果 XML 文件较小且需要频繁访问,DOM 解析是一个不错的选择;如果 XML 文件较大,推荐使用 SAX 或 XmlPullParser 解析。 阅读详情

相关推荐

怎样编写一个Android项目中的.xml文件

为什么会出现xml语言呢?那是因为在计算机发展历程中出现了各式各样的系统,这个时候就会出现一个问题,当我使用一种系统做出了一些数据,而我要验证这些数据需要在另外一个系统中进行,这个时候就要在不同的系统之间进行数据传输,为了解决这个问题于是提出了xml语言。总的来说,你想在xml文件中不想写太多的文本,你可以在values文件夹中的strings.xml文件进行编写,然后遵守相应规则进行调用,也能在预览画面中看到你写的文本内容。xml全名可扩展标记语言,是用于描述数据的标记语言,也是一种通用、可扩展的语言。

youbestcando的博客 1982

XML解析——Java中XML的四种解析方式

  XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。   XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。其中前两种属于基础方法,是官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础的方法上扩...

Sa916487698的博客 2020

Android向本地写入一个XML文件和解析XML文件

在网络存储过程中有很多时候会遇到XML文件解析和使用XML保存一些信息,解析XML文件用的比较多的方法是pull解析和SAX解析,但是我一般只用pull解析,下面就向cd卡写入一个XML文件,然后再使用pull解析的方法对文件进行解析。

chenfengdejuanlian的专栏 7892

Android Xml解析

1. 什么是XML XML (Extensible markup language): XML是一种标记语言,用于存储与传输数据。是常用的数据传输方式,区分大小写,文件扩展名为.xml。XML定义了一组用于以人类可读和机器可读的格式编码文档的规则。XML的设计目标集中在Internet的简单性,通用性和可用性上。它是一种文本数据格式,并通过Unicode对不同的人类语言提供了强大的支持,被W3C所推荐。 例如: <?xml version="1.0" encoding="utf-8"?> &

jerechen的博客 3801

Android 获取sdcard 中xml文件 解析

一、在自己的sdcard下建一个Angle文件夹,创建一个pull.xml文件,准备解析它。 private List xmlPullParseXML(){ File file = new File(Environment.getExternalStorageDirectory(),"/Angle/pull.xml"); InputStrea

zhuangshuo12的专栏 1071

Windows 11安装realtek audio control

Windows 11安装realtek audio control,解决无法链接RPC问题

m0_46144825的博客 8万+

安卓下xml文件的解析

------------------------------------------------------------------------- 下面介绍pull解析和sax解析xml的方式,dom一般不会在移动设备上使用,故略去。--------------------------------------------------------------------------}else if("weather".equals(currentTag))//是否是weather节点。

weixin_71792169的博客 1112

Unity海康视屏对接

通过对接海康SDK,获取视屏流回调。经过解码得到YUV格式的图片,最后通过Shader把YUV数据显示出来。也可以通过Rtsp协议,直接获取视屏流显示。这个貌似Unity中已经有插件支持了,UMP。------2018.4.20using UnityEngine;using System.Collections;using System;using UnityEngine.UI;using Sys...

Witness_K的博客 2028

php解析安卓xml文件,Android XML数据解析

本节引言:前面两节我们对Android内置的Http请求方式:HttpURLConnection和HttpClient,本来以为OkHttp已经集成进来了,然后想讲解下Okhttp的基本用法,后来发现还是要导第三方,算了,放到进阶部分吧,而本节我们来学习下Android为我们提供的三种解析XML数据的方案!他们分别是:SAX,DOM,PULL三种解析方式,下面我们就来对他们进行学习!1.XML数据...

weixin_26834815的博客 206

UDS $27服务DLL文件生成

UDS 27算法 DLL文件生成

hkj8808的博客 1282

CH592F RISC-V蓝牙LED灯设计:WS2812B驱动与微信小程序控制

蓝牙低功耗(BLE)是嵌入式物联网设备主流无线通信技术,其核心在于协议栈轻量化、射频稳定性与外设协同调度。基于RISC-V内核的蓝牙SoC(如CH592F)凭借高集成度、低待机电流和免外部巴伦的射频设计,显著降低硬件复杂度与BOM成本;而WS2812B作为单线级联RGB LED,依赖微秒级精准时序,需借助定时器+DMA机制规避CPU干预,保障动态效果流畅性。该方案融合电容触摸交互、GATT服务自定义与微信小程序标准Bluetooth API对接,适用于智能照明、DIY彩灯及教学实践等场景,是BLE+LED实

weixin_31163455的博客 433

【安卓笔记】安卓下xml文件的解析

安卓下解析xml文件有多种方式: dom: 通用性强,它会将XML文件的所有内容读取到内存中,然后允许您使用DOM API遍历XML树、检索所需的数据;简单直观,但需要将文档读取到内存,并不太适合移动设备; sax: SAX是一个解析速度快并且占用内存少的xml解析 器;采用事件驱动,它并不需要解析整个文档;实现:继承DefaultHandler,覆写startElement、

RowandJJ 2516

10-142 6-4 查询厂商“D“生产的PC和便携式电脑的平均价格

分数 10全屏浏览题目切换布局作者 lhm单位 河北农业大学本题目要求编写SQL语句,查询厂商D生产的PC和便携式电脑的平均价格。

dqd66的博客 2748

Android中使用SAX方式解析XML文件

在Android中解析XML文主要有三种方式,分别为Simple API for XML(SAX)、Document Object Model(DOM)和Android附带的pull解析器。在本篇文章中主要采用例子说明使用SAX方式解析XML文件。          SAX是一

Android-Idea 5541

trae使用playwright MCP方法流程

trae使用playwright MCP方法流程

MAILLIBIN的专栏 1677

大模型工作流Dify面试题及参考答案

设计一个基于 Dify 的智能摘要与重点提取 Agent,需结合Prompt 工程、模型能力配置和工作流优化,确保对长文本的高效解析和关键信息提炼。1. 明确任务需求与输入输出输入:长文本内容(如文章、报告、会议记录)或文本 URL输出摘要:简洁概括原文核心内容,控制在原文长度的 10%-20%重点列表:分点列出关键数据、结论、行动项等可选:关键词提取、情感倾向分析示例场景输入:一篇 5000 字的行业报告。

大模型大数据攻城狮的专栏 2510

xmlpullparser解析xml android,Android编程解析XML文件的方法详解【基于XmlPullParser】

本文实例讲述了Android编程解析XML文件的方法。分享给大家供大家参考,具体如下:前言在学习Android的Framework层源码时,Android大量的使用XmlPullParser来解析xml文件的源码。因此,这里也顺道介绍一下XmlPullParser的使用。XMLXML(eXtensible Markup Language)中文名为可扩展标记语言。标记指计算机所能理解的信息符号,通过...

weixin_29455479的博客 949

(五)深入理解Bluez协议栈之“GATT Server Profile”

上一篇介绍Bluez协议栈的了GAP Profile的实现,本章节我们继续介绍GATT Profile的实现,参考的程序是Peripheral。通过阅读它的实现代码可以发现,它广播部分是通过mgmt来实现的,然后在初始化完成之后,创建了一个L2CAP类型的socket,来负责实现GATT Server的逻辑。

1142

Android基础的xml文件创建,解析,以及安卓下的消息机制

##Android下的消息机制. * 子线程不可以修改ui. * 只有主线程才可以修改ui. * 如果子线程想更新ui就必须利用消息机制处理 * Handler : 消息处理器, 可以发送消息给主线程的消息队列. * Message Queue: 消息队列,主线程里面的一个消息队列. * Looper : 轮询器,检查消息队列里面是否有消息.---> HandleMessage();

tongzhengtong的博客 860

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

安卓大json文件解析_Android里的网络以及XML,JSON文件的解析

涉及到Android里的网络编程都需要添加权限一、WebView:是应用程序打开web网页的UI控件前台:xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/...

weixin_29433715的博客 226

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android 二进制 XML 文件解析

Android 二进制 XML 文件解析 文章目录Android 二进制 XML 文件解析前言XML 文件结构XML Chunk HeaderString Pool ChunkResource Ids ChunkXML Content ChunkResXMLTree_nodeStart Element ChunkCData ChunkEnd Element ChunkEnd Namespace ChunkChunk Header TypeXML 文件解析解析方法XML Chunk HeaderString

l0neman 的博客 2091

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android xml解析,android解析xml文件

在androd手机中处理xml数据是很常见的事情,通常在不同平台传输数据的时候就可能使用xml。xml与平台无关的特性,被广泛运用于数据通信中。android中解析xml文件数据通常有三种方式:DOM,SAX,PULL。一、DOM方式DOM方式解析xml是先把xml文档都读到内存中,然后再用DOM API来访问树形结构,并获取数据的。但是这样一来,如果xml文件很大(手机CPU处理能力当然不能与P...

weixin_36367702的博客 1338

android解析xml文件实例,android pull解析xml文件实例

要解析的xml文件 放置在 assets文件夹中: index.xml1001Thinking In Java80.001002Core Java90.001003Hello, Andriod100.00解析xml 对象类:package com.example.mytool;public class book {private int id;private String name;private...

weixin_35133280的博客 129

安卓使用DOM,SAX,PULL解析xml,安卓写入xml文件

Xml简介 对Xml不太了解的同学可以看一下这篇Xml的简介:http://www.cnblogs.com/SkySoot/archive/2012/08/24/2654319.html DOM解析Xml Dom解析Xml的时候,会将Xml文件的所有内容以文件树的形式存储到内存中,然后用户通过使用DOM API遍历Xml树,检索需要的内容。 但是,因为它将文件树放在了内存中,如果文件较大的

YanRu的专栏 934

Android 中使用Pull解析XML文件

解析XML文件是非常常用的功能,在Android客户端中,经常与服务器通信都需要xml文件的支持,我们这里介绍一个 简单的xml文件的解析,就是使用android中的pull方法进行解析。在java中,有dom解析和sax解析,这个pull解析有些类 似于sax解析,他也是一行一行的读取然后解析内容的方法. 首先看一下这个简单的xml文件 -1℃/5℃ 多云 南风3

技术是我的毕生追求 3523
上一篇: android解析XML总结(SAX、Pull、Dom三种方式)
下一篇: Android线程:Message和Runnable
hookfeng
博客等级 码龄12年 4粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值