XMLPuLL解析

1 package com.bawei.day14_xmlpull;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5 import java.util.ArrayList;
6 import java.util.List;
7
8 import org.xmlpull.v1.XmlPullParser;
9 import org.xmlpull.v1.XmlPullParserException;
10
11 import android.os.Bundle;
12 import android.app.Activity;
13 import android.util.Xml;
14 import android.view.Menu;
15 import android.widget.ArrayAdapter;
16 import android.widget.ListView;
17 import android.widget.TextView;
18
19 public class MainActivity extends Activity {
20
21 private ListView mStuListView;
22 private List<Student> stus;
23
24 @Override
25 protected void onCreate(Bundle savedInstanceState) {
26 super.onCreate(savedInstanceState);
27 setContentView(R.layout.activity_main);
28 TextView tv=(TextView) findViewById(R.id.tv);
29 mStuListView = (ListView) findViewById(R.id.stuList);
30 try {
//调用方法
31 parseStudent(getAssets().open("persons.xml"));
32 if (stus != null && stus.size() > 0) {
33 ArrayAdapter<Student> adapter = new ArrayAdapter<Student>(this, android.R.layout.simple_list_item_1, stus);
34 mStuListView.setAdapter(adapter);
35 }
36
37 } catch (IOException e) {
38 // TODO Auto-generated catch block
39 e.printStackTrace();
40 }
41
42 }
43
44 private List<Student> parseStudent(InputStream is) {
45 stus = new ArrayList<Student>();
//创建pull解析器
46 XmlPullParser parser = Xml.newPullParser();
47 try {
//把需要解析的数据添加到解析器中,并设置数据格式
48 parser.setInput(is, "utf-8");
//通过解析器触发第一次事件,并获取事件类型码
49 int eventType = parser.getEventType();
50 //定义用来存储标签名称的变量
51 String tagName = "";
52 Student stu = null;
//判断是否解析到文档末尾,没有则循环解析
53 while (eventType != XmlPullParser.END_DOCUMENT) {
54 switch (eventType) {
//开始解析文档
55 case XmlPullParser.START_DOCUMENT:
56 break;
//开始解析标签
57 case XmlPullParser.START_TAG:
//得到标签名字
58 tagName = parser.getName();
//判断正在接戏的元素标签是否是person
59 if ("person".equals(tagName)) {
60 stu = new Student();
61 stu.setId(Integer.valueOf(parser.getAttributeValue(0)));
62
63 }
64 break;
//解析到文本
65 case XmlPullParser.TEXT:
//得到当前正在解析的文本内容
66 String text = parser.getText();
67 if (stu != null) {
//判断正在解析的文本内容是哪个元素节点里的
68 if ("name".equals(tagName)) {
69 stu.setName(text);
70 } else if ("age".equals(tagName)) {
71 stu.setAge(Integer.parseInt(text));
72 }
73 }
74 break;
//解析到结束标签
75 case XmlPullParser.END_TAG:
//得到正在解析的元素标签名
76 tagName = parser.getName();
//得到正在解析的元素标签名是否是person
77 if ("person".equals(tagName)) {
78 stus.add(stu);
79 stu = null;
80
81 }
82
83 tagName = "";
84 break;
85
86 } //本次事件处理完毕,进入下一个节点,下一个事件
87 eventType = parser.next();
88 }
89
90 } catch (XmlPullParserException e) {
91 // TODO Auto-generated catch block
92 e.printStackTrace();
93 } catch (IOException e) {
94 // TODO Auto-generated catch block
95 e.printStackTrace();
96 }finally{
97
98 try {
99 if(is!=null){
100 is.close();
101 }
102 } catch (IOException e) {
103 // TODO Auto-generated catch block
104 e.printStackTrace();
105 }
106
107 }
108
109 return stus;
110 }
111
112 }

json解析

import com.google.gson.Gson; import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.TextView; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = (TextView) findViewById(R.id.tv);
try {
InputStream is=getAssets().open("newsList.json");
int length = is.available();
byte[] buffer=new byte[length];
is.read(buffer);
String jsonStr=new String(buffer,0,length);
Gson g=new Gson();
SuperJsonParse sjp=g.fromJson(jsonStr,SuperJsonParse.class);
textView.setText(sjp.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }

XMLPuLL解析的更多相关文章
- Android之使用XMLPull解析xml(二)
转自:http://www.blogjava.net/sxyx2008/archive/2010/08/04/327885.html 介绍下在Android中极力推荐的xmlpull方式解析xml.x ...
- Android--使用XMLPull解析xml
在Android中极力推荐的xmlpull方式解析xml.xmlpull不只能够使用在Android上.相同也适用于javase,但在javase环境下.你须要自己去获取xmlpull所依赖的类库. ...
- HttpEntity转换Inputstream(红色)加XmlPull解析
package com.bawei.xml; import java.io.IOException; import java.io.InputStream; import java.util.Arra ...
- Android中的几种解析XML文件的类
Ø DOM解析 优点: 1.XML树在内存中完整存储,因此可以直接修改其数据和结构. 2.可以通过该解析器随时访问XML树中的任何一个节点. 3.DOM解析器的API在使用上也相对比较简单. 缺点:如 ...
- android 之 XMLPull
Pull解析 Pull的XML解析操作与SAX解析操作类似,也是采用事件驱动的方式.当XML文档开始解析或者遇到节点时都会有相应的事件代码触发. 主要涉及两个类: org.xmlpull.v1.Xml ...
- 通过pull解析器操作安卓的xml
通过pull解析器操作安卓的xml 例子定义了一个javabean用于存放上面解析出来的xml内容, 这个javabean为Person,代码请见本页下面备注: =================== ...
- 浅谈 Java Xml 底层解析方式
XML 使用DTD(document type definition)文档类型来标记数据和定义数据,格式统一且跨平台和语言,已成为业界公认的标准. 目前 XML 描述数据龙头老大的地位渐渐受到 Jso ...
- 抱歉最近朋友结婚去浪了几天~未来几天会正常更新.今天带来XML文件解析
三种解析方法 DOM,SAX,XMLPullParse;你以为我要讲三种嘛 错 ,我只讲一种 ,其他两种我只是说下优缺点, 一.DOM解析器 优点: DOM解析器在解析XML文档时,会把文档中的所有元 ...
- 推荐--《Android深入浅出》
基本信息 书名:Android深入浅出 作者:张旸 著 页数: 661 出版社: 机械工业出版社; 第1版 (2014年4月17日) 语种: 简体中文 ASIN: B00JR3P8X0 品牌: 北京华 ...
随机推荐
- __DATE__ 与 __TIME__转换为标准格式时间字符串的方法
// Example of __DATE__ string: "Jul 27 2012"// 01234567890 #define BUILD_YEAR_CH0 (__DATE_ ...
- 【转】jquery.cookie.js的使用
Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是 ...
- mysql_索引原理及优化
思考: 我们知道mysql最好的数据存储量级是百万级别,是的往往在百万级别或者几十万级别就会出现慢查询(我对慢查询的定义是大于1秒),几年前我所在的一个做pos机支付的联机交易的核心系统组,当时就做过 ...
- 史上自定义 JavaScript 函数Top 10
http://www.dustindiaz.com/top-ten-javascript/ 发布:wpulog | 发布时间: 2010年4月9日 10个被使用的最普遍的用户自定义函数,add ...
- erlang调试之JCL
Job control mode (JCL), in which jobs can be started, stopped, detached or connected. Only the curre ...
- 保证唯一的一种js提交数据方式,还不错
<div class="project_right"> <div class="project_title_right" id="m ...
- java编程题
第一题:输入字符串长度len1,字符串s1,字符串长度len2,字符串s2.从后向前比较,以最短字符串为标准,输出不同的元素的个数. 例如: 输入:s1="1,3,5" ...
- WVS简单使用
Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞,如交叉站点脚本,sql 注入等.在被 ...
- Unity 编译apk启动出异常
问题:unity 编译出来的apk,在android安装启动,时报以下错误: 07-06 20:52:48.282: E/linker(18229): load_library(linker.cpp: ...
- 系统无法开始服务器进程。请检查用户名和密码。 (Exception from HRESULT: 0x8000401A)
开始-运行-cmd,输入aspnet_regiis.exe -i 重新注册iis 或者 出现以下错误:检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-0000 ...