解析xml文件的几个步骤

1、生成xml文件的解析器

XmlPullParser parser = Xml.newPullParser();

2、设置解析器读取流对象的编码格式

parser.setInput(is, "utf-8");

3、设置解析xml文件之后要存储的位置

List<WeatherInfo> weatherInfo = null;

WeatherInfo info = null;

4、定义解析器解析到的事件类型

int type = parser.getEventType();

5、设置解析器的停止解析的判定条件

while (type != XmlPullParser.END_DOCUMENT)

{

switch (type)

{

case XmlPullParser.START_TAG:

if ("infos".equals(parser.getName()))

{

// 解析到了全局的开始标签

weatherInfo = new ArrayList<WeatherInfo>();

}

else if ("city".equals(parser.getName()))

{

info = new WeatherInfo();

String idStr = parser.getAttributeValue(0);

info.setId(Integer.parseInt(idStr));

}

else if ("temp".equals(parser.getName()))

{

info.setTemp(parser.nextText());

}

else if ("weather".equals(parser.getName()))

{

info.setWeather(parser.nextText());

}

else if ("wind".equals(parser.getName()))

{

info.setWind(parser.nextText());

}

else if ("name".equals(parser.getName()))

{

info.setName(parser.nextText());

}

else if ("pm".equals(parser.getName()))

{

info.setPm(parser.nextText());

}

break;

6、设置xml解析器结束的标签,并把解析到的内容存储到集合中去

case XmlPullParser.END_TAG:

if ("city".equals(parser.getName()))

{

// 一个城市的信息已经处理完毕了

weatherInfo.add(info);

info = null;

}

break;

}

type = parser.next();

}

7、将解析到的数据返回回去

return weatherInfo;

时间: 2024-10-14 14:16:27

解析xml文件的几个步骤的相关文章

解析XML文件步骤

import javax.xml.parsers.*; import org.w3c.dom.*; class PapresTest{     public static void main(String[]args)throws Exception{         readNode();              }     /*     思路:     解析xml文件,需要DocumentBuilder类中的parse()方法.     因为该方法不是静态的,所以需要实例化Document

SAX解析XML文件

SAX是Simple API for XML的缩写,它并不是由W3C官方所提出的标准.SAX是一种轻量型的方法,不像DOM解析时,把XML文档全部载入内存中,在PC上操作,Dom还有 优势,但在手机中端上则无优势,因为手机内存和硬件都比不上PC强.使用 SAX 是比较安全的,并且 Android 提供了一种传统的 SAX 使用方法,以及一个便捷的 SAX 包装器.SAX采用基于事件驱动的处理方式,它将XML文档转换成一系列的事件,由单独的事件处理器来决定如何处理. 在SAX接口中,事件源是org

Android开发学习---使用XmlPullParser解析xml文件

Android中解析XML的方式主要有三种:sax,dom和pull关于其内容可参考:http://blog.csdn.net/liuhe688/article/details/6415593 本文将主要介绍pull解析器解析xml文件,环境为ubuntu 12.04+ intelij 13.1 + android sdk 2.1 一.创建一个XML项目,步骤如下: 二.解析一个xml文件: assets/person.xml <?xml version="1.0" encodi

解析xml文件作为下拉列表的数据源

需求:有一个xml文件,包含省市县的信息(id,name,下属分划) 将xml文件信息解析到安卓下拉列表(spinner),三个下拉列表,第一个显示省名,第二个显示市名,第三个显示县名 要求选择第一个下拉列表的一个省名,相应市县信息跟随变化 方案分析: 1.因为要解析xml文件的全部信息,可以选择pull解析或者sax解析 2.有省.市.县等信息 则要有三个对应的实体类 xml文件 部分内容 1 - <p p_id="01"> 2 <pn>北京</pn&g

解析XML文件的两种方式 SAX和DOM

1.数据解析 解析的基本概念 所谓“解析”:从事先规定好的格式中提取数据 解析的前提:提前约定好格式,数据提供方按照格式提供数据.数据获取方则按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 2.XML数据结构 XML:Extensible Markup language(可扩展标记语言),主流数据格式之一,可以用来存储和传输数据. XML数据格式的功能 数据交换 内容管理 用作配置文件 XML数据结构的语法 声明 节点使用一对标签表示:起始和结束标签. 根节点是起始节点,只有一

SAX方式解析xml文件查看天气

1.SAX方式解析xml文件的步骤: ①创建解析器工厂对象 ②使用当前配置的工厂参数创建SAXParser对象 ③解析xml文件 ④利用DefaultHandler创建事件驱动者 2.对于标签对象进行引用怎么办? ①定义当前解析的标签:private String tagName=null; ②在startElement()方法中赋值tagName:this.tagName=qName; ③在endElement()方法中将tagName赋值为空:this.tagName=null; ④在cha

通过Dom方式解析xml文件

此项目通过简单的天气情况显示来实现xml文件的解析 1. 搭建环境 1)创建如下图的包.类及文件 2)布局文件的大概样式如下图所示,用到四个TextView控件和一个RadioGroup控件 3)china.xml文件的内容如下 <?xml version="1.0" encoding="UTF-8"?> <china dn="day"> <city cityname="南京" pyName=&q

通过Sax方式解析xml文件

说明:此案例使用的是通过Dom方式解析xml文件这篇文章里的City类和china.xml文件. 1. 因为xml文件有两种格式,一是上面那篇文章里的那种元素节点里只包含属性节点,另一种就是元素节点里包含元素节点和文本节点,于是在china.xml中添加如下代码,以实现两种方式的解析: <city> <cityname>杭州</cityname> <pyName>zhejiang</pyName> <quName>浙江</quN

2017/4/26-DOM解析XML文件

DOM解析XML 1.分析 DOM是JAVA自带的XML解析API.DOM首先将XML文件全部加载至内存中,然后再内存中创建DOM树,生成DOM树上的每个Node节点. 2.优点 1) 可以创建或修改XML文件内容. 2) 进行XSLT转换. 3) 进行Xpath过滤. 3.缺点 1) 由于DOM会先把XML文件加载至内存中并使用DOM树,因此文件过大时,会占用非常多的内存. 2) 相对于SAX,效率上也会有明显的下降. 4.适用场合 1) 当需要对XML文档进行修改或者创建XML文档时,可以使