pull解析复杂xml文件

原创 2016年06月01日 15:57:49

xml文件

<?xml version="1.0" encoding="UTF-8"?>
<books>	
	<china>
		<book>	
			<price>50</price>
			<name>三国演义</name>			
			<author>罗贯中</author>
		 </book>
		 <book>	
			  <price>60</price>
			  <name>红楼梦</name>			
			 <author>曹雪芹</author>
		 </book>
		<book>	
			<price>40</price>
			 <name>水浒传</name>			
			 <author>施耐庵</author>
		 </book>
	</china>
	<foreiner>
		<book>	
			<price>50</price>
			<name>巴黎圣母院</name>			
			<author>雨果</author>
		 </book>
		 <book>	
			  <price>60</price>
			  <name>母亲</name>			
			 <author>高尔基</author>
		 </book>
		<book>	
			<price>40</price>
			 <name>钢铁怎样炼成的</name>			
			 <author>列夫</author>
		 </book>
	</foreiner>
</books>

解析

// 解析数据
	private void pullparsexml() {
		XmlPullParser parser = Xml.newPullParser();
		try {
			parser.setInput(getAssets().open("books.xml"), "utf-8");
			int event = parser.getEventType();
			flag = true;
			while (flag) {
				switch (event) {
				case XmlPullParser.START_DOCUMENT:
					china = new ArrayList<Books>();
					foreiner = new ArrayList<Books>();
					break;
				case XmlPullParser.START_TAG:
					tagname = parser.getName();
					if (tagname.equals("china")) {
						tag = 0;
					} else if (tagname.equals("foreiner")) {
						tag = 1;
					} else if (tagname.equals("book")) {
						book = new Books();
					}

					break;
				case XmlPullParser.TEXT:
					if (tagname.equals("price")) {
						book.setPrice(parser.getText());
					} else if (tagname.equals("name")) {
						book.setName(parser.getText());
					} else if (tagname.equals("author")) {
						book.setAuthor(parser.getText());
					}
					break;
				case XmlPullParser.END_TAG:
					tagname = parser.getName();
					if (tagname.equals("book")) {
						if (tag == 0) {
							china.add(book);
						} else if (tag == 1) {
							foreiner.add(book);
						}
					}
					tagname = "";
					break;
				case XmlPullParser.END_DOCUMENT:
					flag = false;
					break;

				default:
					break;
				}
				event = parser.next();
			}
		} catch (XmlPullParserException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}


版权声明:本文为博主原创文章,未经博主允许不得转载。

android xml使用pull解析

xml的三种解析方式,DOM,SAX,和Pull
  • u013072976
  • u013072976
  • 2014年11月11日 17:43
  • 691

xmlPull解析网络数据(xml文件)

private void getXml() { new Thread() { public void run() { tr...
  • xingxiansheng000
  • xingxiansheng000
  • 2016年06月20日 14:15
  • 149

Android开发8——利用pull解析器读写XML文件

一、基本介绍 对XML解析有SAX和DOM等多种方式,Android中极力推荐xmlpull方式解析xml。xmlpull不仅可用在Android上同样也适用于javase,但在javase环境...
  • woshixuye
  • woshixuye
  • 2012年12月05日 17:17
  • 6005

【Android】PULL解析XML文件

XML解析三种方式 DOM 通用性强,它会将XML文件的所有内容读取到内存中,然后允许您使用DOM API遍历XML树、检索所需的数据; 简单直观,但需要将文档读取到内存,并不太适合移动设备; ...
  • oYunTaoLianWu
  • oYunTaoLianWu
  • 2013年10月27日 02:08
  • 13787

Android之PULL解析XML

今天我们一起通过一个小例子来学习一下使用PULL解析器解析XML文件。 (1)首先我们放一个文件名为beauties.xml的XML文件到assets目录下,文件内容如下: ...
  • bear_huangzhen
  • bear_huangzhen
  • 2014年04月29日 10:22
  • 25626

Android studio 下的 XML pull解析

Android原生系统的XML解析就是用的pull解析。由此我们可以得出两个信号: 1、pull解析肯定有独特的优势,能从dom、sax解析中脱颖而出。 2、我们在使用pull解析时不需要...
  • sinat_29398599
  • sinat_29398599
  • 2016年10月11日 10:46
  • 1519

PULL解析XML文件

PULL解析XML文件常用的XML pull的接口和类: XmlPullParser:该解析器是一个在org.xmlpull.v1中定义的解析功能的接口。 XmlSerializer:它是一个接口,定...
  • u012711313
  • u012711313
  • 2016年01月16日 11:50
  • 133

复杂pull解析

package com.animee.day15.xml_test; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1....
  • qq_41345883
  • qq_41345883
  • 2018年01月15日 09:02
  • 10

XML文件Pull解析

public class MainActivity extends Activity { String url = "http://www.oschina.net/MobileAppVers...
  • llx_android
  • llx_android
  • 2016年07月29日 10:17
  • 132

Pull解析xml文件

Pull解析和Sax解析很相似,都是轻量级的解析,在Android的内核中已经嵌入了Pull,所以我们不需要再添加第三方jar包来支持Pull。Pull解析和Sax解析不一样的地方有(1)pull读取...
  • rong_wz
  • rong_wz
  • 2013年11月08日 16:16
  • 549
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:pull解析复杂xml文件
举报原因:
原因补充:

(最多只允许输入30个字)