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文件

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

DOM和PULL解析XML文件

  • 2011-09-13 13:07
  • 37.62MB
  • 下载

安卓设备PULL解析XML文件

前几天,公司内部的通讯APP定下了服务器下发的数据全是在XML文件里面,经过研究发现还是pull解析XML文件比较方便,故此贴上XML文件解析流程。 首先,我们得拿到XML文件,代码如下: ...

DOM4j\pull\dom解析XML文件

  • 2013-12-26 10:56
  • 130KB
  • 下载

使用SAX或者DOM或者pull解析XML文件的使用

在Android平台上可以使用Simple API for XML(SAX) 、 Document Object Model(DOM)和Android附带的pull解析器解析XML文件。 SAX是一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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