android pull解析相关理解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了android pull解析相关理解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2722字,纯文字阅读大概需要4分钟。
内容图文
Pull解析XML
XmlPullParser解析器的运行方式与SAX解析器相似.它提供了类似的事件(开始元素和结束元素),但需要使用parser.next()方法来提取它们.事件将作为数值代码被发送,因此可以根据不同的事件代码值来进行不同的处理.通过parser.getEventType()方法来取得事件的代码值(如XmlPullParser.START_DOCUMENT、XmlPullParser.START_TAG、XmlPullParser.END_TAG).
当处于某个元素时可以调用XmlPullParser的getAttributte()方法来获取属性的值,也可调用它的nextText()获取本节点的值。
具体思路:
*构建PullXmlParser解析器
XmlPullParser parser = Xml.newPullParser();
*将xml文档注册到解析器中
parser.setInput();
*触发事件,获得事件类型码
int event = parser.getEventType();
*针对事件进行具体分析
"name".equals(parser.getName());//判断开始标签元素是否是name
parser.getAttributeValue(0);//得到标签的属性值
parser.nextText();//获取下一个Text节点的值
*触发并进入下一个事件
event = parser.next();
Pull解析和Sax解析不一样的地方有:
(1)pull读取xml文件后触发相应的事件调用方法返回的是数字
(2)pull可以在程序中控制想解析到哪里就可以停止解析。
优点:不是一次加载,中途可以停止
***********pull解析的代码*************
1 public class PullparserActivity extends Activity { 2private TextView mtextview; 3private ListView mlistview; 4 5@Override 6protectedvoid onCreate(Bundle savedInstanceState) { 7 8super.onCreate(savedInstanceState); 9setContentView(R.layout.domparser); 10 mtextview = (TextView) findViewById(R.id.textView1); 11 mlistview = (ListView) findViewById(R.id.listView1); 12 mtextview.setText("pull解析xml"); 1314 List<Student> list = parser(); 15 ArrayAdapter<Student> adapter = new ArrayAdapter<Student>(this, 16android.R.layout.simple_list_item_1, list); 17mlistview.setAdapter(adapter); 1819} 2021private List<Student> parser() { 22 List<Student> list = new ArrayList<Student>(); 23// 获取pull解析器 24 XmlPullParser parser = Xml.newPullParser(); 25try { 26// 加载xml文档 27 parser.setInput(PullparserActivity.this.getClassLoader() 28 .getResourceAsStream("student.xml"), "utf-8"); 29// c.触发事件,获得事件类型码 30int event = parser.getEventType(); 31 Student student = null; 3233while (event != XmlPullParser.END_DOCUMENT) { 34switch (event) { 35case XmlPullParser.START_DOCUMENT:// 文档开始 36break; 37case XmlPullParser.START_TAG:// 开始标签 38if ("student".equals(parser.getName())) { 39 student = new Student(); 40student.setId(Integer.valueOf(parser 41 .getAttributeValue(0))); 4243} 44 Log.i("TAG", "infor"); 45if (student != null) { 46if ("name".equals(parser.getName())) { 47student.setName(parser.nextText()); 48 } elseif ("age".equals(parser.getName())) { 49student.setAge(Integer.valueOf(parser 50 .getAttributeValue(0))); 51} 52} 53break; 54case XmlPullParser.END_TAG://結束标签 55if ("student".equals(parser.getName())) { 56list.add(student); 57 student = null; 58} 59 Log.i("TAG", "infor"); 60break; 61case XmlPullParser.TEXT:// 文本解析 62break; 63} 64 event = parser.next(); 6566} 67 } catch (Exception e) { 68e.printStackTrace(); 69} 7071return list; 72} 73 }
原文:http://www.cnblogs.com/xuanyuanzhuo-blog/p/3983463.html
内容总结
以上是互联网集市为您收集整理的android pull解析相关理解全部内容,希望文章能够帮你解决android pull解析相关理解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。