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();
		}

	}


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

Pull解析xml文件

  • 2014年09月10日 15:52
  • 554KB
  • 下载

在android中使用pull解析xml文件

  • 2013年06月22日 23:14
  • 1.18MB
  • 下载

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

Pull解析器的运行方式与 SAX 解析器相似。它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。跟SAX不同的是, Pull解析器产生的...
  • cjjky
  • cjjky
  • 2011年08月07日 23:24
  • 11214

DOM和PULL解析XML文件

  • 2011年09月13日 13:07
  • 37.62MB
  • 下载

android使用pull 解析xml文件源码

  • 2012年03月20日 20:52
  • 45KB
  • 下载

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

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

DOM4j\pull\dom解析XML文件

  • 2013年12月26日 10:56
  • 130KB
  • 下载

Android 个人学习笔记之--- Pull解析XML文件

1.Pull简介 Pull解析器是Android系统内置的的,Pull解析器与SAX解析器类似,他提供了类似的事件,如开始元素和介绍元素的事件,使用parser.next()可以进入下一个元素并触发相...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:pull解析复杂xml文件
举报原因:
原因补充:

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