xml解析案例

步骤:Channel是java bean类

public static List<Channel> parsexml(InputStream inputStream) {

  //0声明集合对象和java bean对象

  List<Channel>weatherList = null;

  Channel channel = null;

  //1获取XmlPullParser 解析的实例

  XmlPullParser parser = Xml.newPullParser();

  try {

  //2设置XmlPullParser 的参数

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

  //3获取事件类型

  int eventType = parser.getEventType();

  //4循环解析并存储  

  while(eventType!=XmlPullParser.END_DOCUMENT){

  switch (eventType) {

  case XmlPullParser.START_TAG://解析开始的标签

  //5具体判断解析到哪一个标签

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

  //6实例化一个集合对象

  weatherList = new ArrayList<>();

  } else if ("channel".equals(parser.getName())) {

  //7實例化一个java bean对象

  channel = new Channel();

  //8获取id值并且保存

  String id = parser.getAttributeValue(0);

  channel.setId(id);

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

  //9获取city值并且保存

  try {

  String city = parser.nextText();

  channel.setCity(city);

  } catch (IOException e) {

  e.printStackTrace();

  }

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

  //10获取city值并且保存

  try {

  String temp = parser.nextText();

  channel.setTemp(temp);

  } catch (IOException e) {

  e.printStackTrace();

  }

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

  //11获取city值并且保存

  try {

  String wind = parser.nextText();

  channel.setWind(wind);

  } catch (IOException e) {

  e.printStackTrace();

  }

  }else if ("pm250".equals(parser.getName())) {

  //12获取city值并且保存

  try {

  String pm250 = parser.nextText();

  channel.setPm250(pm250);

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

  break;

  case XmlPullParser.END_TAG://结束标签

  if ("channel".equals(parser.getName())) {

  //把javabean对象存到集合中

  weatherList.add(channel);

}

  break;

}

  //不停的向下解析

  try {

  eventType = parser.next();

  } catch (IOException e) {

  e.printStackTrace();

}

}

} catch (XmlPullParserException e) {

e.printStackTrace();

}

      return weatherList;

}

时间: 2024-10-02 06:59:37

xml解析案例的相关文章

用DOM4J解析XML文件案例

用DOM4J解析XML文件案例,由于DOM4J不像JAXP属于JAVASE里,所以如果要使用DOM4J,则必须额外引入jar包,如图: 1.xml文件 <?xml version="1.0" encoding="UTF-8"?> <class> <student> <name>张三</name> <sid>111111</sid> </student> <stude

android XML解析器全解案例

1.使用pull解析 1 package com.example.myxml; 2 3 import java.io.InputStream; 4 import java.util.ArrayList; 5 import java.util.List; 6 7 import org.xmlpull.v1.XmlPullParser; 8 import org.xmlpull.v1.XmlPullParserFactory; 9 10 import android.util.Log; 11 imp

5月3日上课笔记-XML解析

一.XML编程 1.xml编程的两种解析方式 1.1 dom解析 优点:一次加载,多次使用.可以方便的对xml文档进行增删改查 缺点:如果xml文档过大的话,加载的时候会比较占用内存空间比较大,消耗资源,时间长. 1.2 sax解析 优点:一行行读取加载,占用空间少,消耗内存资源少,时间短. 缺点:如果下次使用还得重新加载,只适合查询操作,不适合增删改. 针对加载一次使用一次的问题,可以采取针对性的措施,即在加载的时候可以保存在集合中进行存储. 2.xml解析开发工具包 2.1 jaxp sun

iOS xml解析

iOS xml 解析方法有两种:SAX , DOM. SAX 不用借助第三方,在解析过程中逐行解析.(NSXMLParser,需要实现代理),具体步骤: 1.获取文件路径. 2.创建 NSXMLParser 对象. 3.遵守协议,设置代理. 4.实现代理方法 1>- (void)parserDidStartDocument:  ---- 开始解析 2>- (void)parserDidEndDocument: ----解析结束 3>- (void)parser:didStartEleme

XML解析

3.1 XML简单介绍 (1) XML:可扩展标记语言 a.语法 b.XML文档的三部分(声明.元素和属性) c.其它注意点(注意不能交叉包含.空行换行.XML文档只能有一个根元素等) (2) XML解析 a.XML解析的两种方式 001 SAX:从根元素开始,按顺序一个元素一个元素的往下解析,可用于解析大.小文件 002 DOM:一次性将整个XML文档加载到内存中,适合较小的文件 b.解析XML的工具 001 苹果原生NSXMLParser:使用SAX方式解析,使用简单 002 第三方框架 l

JAVASE02-Unit012: Unit07: XML语法 、 XML解析

Unit07: XML语法 . XML解析 emplist.xml <?xml version="1.0" encoding="UTF-8"?> <list> <emp id="1"> <name>张三</name> <age>34</age> <gender>男</gender> <salary>3000</salary

iOS -数据库网络之xml解析

XML文件有2种解析方式 1.基于文档(document) 2.基于事件(sax) 1.IOS中XML文件获取 首先要将XML导入工程中 在ViewController的按钮事件中,代码如下: //获取xml完整路径 NSString * path=[[NSBundle mainBundle] [email protected]"xml文件名称" ofType:@"xml"]; //读取文件到内存 NSData* data=[NSData dataWithConte

XML解析(转)

非原创,转载自http://my.oschina.net/khakiloveyty/blog/396671 xml解析主要可以使用CData,libxml2以及NSXMLParser,以下对各个方法给出了相应的例子: 1.CDataXML: 1.1.创建FKBook类 #import <Foundation/Foundation.h> @interface FKBook : NSObject @property (nonatomic , assign) NSInteger bookID; @p

iOS网络数据解析之XML解析-GDataXML

GDataXML 第三方xml解析框架 DOM解析:一次性将整个XML文档加载进内存,比较适合解析小文件 GDataXML中常用的类 GDataXMLDocument: 代表整个XML文档 GDataXMLElement: 代表文档中的每个元素 使用attributeForName:方法可以获得属性值 要使用GDataXML,先要对项目进行一些配置.1>导入libxml2动态库targets--Build Phases--link Binary With Libraries 2>设置libxm