XmlPullParser解析xml数据
2015-06-23 13:38
429 查看
解析assets目录下的persons.xml文件;
运行结果:
![](http://img.blog.csdn.net/20150623134018763?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHJlYW1JblRoZVdvcmxk/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
本文参考:
http://blog.csdn.net/liuhe688/article/details/6415593
<?xml version="1.0" encoding="UTF-8"?> <persons> <person id="1001"> <name> 路人甲</name> <age>25</age> </person> <person id="1002"> <name>路人乙</name> <age>26</age> </person> </persons>
public class MainActivity extends Activity { private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView) findViewById(R.id.textView); textView.setText(""); try { AssetManager assetManager = null; assetManager = this.getAssets(); ParseTools3 parseTools = new ParseTools3(); parseTools.setTextView(textView); parseTools.getRooms(assetManager.open("persons.xml")); } catch (Exception e) { Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show(); textView.append(e.toString()); e.printStackTrace(); } } }
package com.example.xmltestdemo; import java.io.InputStream; import org.xmlpull.v1.XmlPullParser; import android.util.Xml; import android.widget.TextView; public class ParseTools3 { private TextView textView; public void setTextView(TextView textView) { this.textView = textView; } public void getRooms(InputStream xml) throws Exception { XmlPullParser pullParser = Xml.newPullParser(); pullParser.setInput(xml, "UTF-8"); int event = pullParser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: print("开始解析......\n"); break; case XmlPullParser.START_TAG: String name = pullParser.getName(); String value; if (name.equals("persons")) { value = "persons\n"; } else if (name.equals("person")) { value = "person\n"; value = pullParser.getAttributeValue(0); name = pullParser.getAttributeName(0); } else { value = pullParser.nextText(); } if (name != null) { if (value != null) { print(name + "=" + value); } } if (name == null || value == null) { print("[0]"); } break; case XmlPullParser.END_TAG: if (pullParser.getName() != null && pullParser.getName().equals("person")) { print("end " + pullParser.getName() + "\n"); } else if (pullParser.getName() != null && pullParser.getName().equals("persons")) { print("end " + pullParser.getName() + "\n"); } break; default: // 空白或者换行 print("; "); break; } event = pullParser.next(); } } private void print(String text) { textView.append(text); } }
运行结果:
本文参考:
http://blog.csdn.net/liuhe688/article/details/6415593
相关文章推荐
- 同步更新博客园
- 剑指Offer旋转数组中的最小数字
- vmware安装centos以及实现win7和centos自由拖放文件
- Android笔记:解决 Your project contains error(s),please fix them before running your application问题
- python 使用 mechanize 模拟浏览器访问网页
- footer 经典切换 特效
- java学习之集合之终极总结
- Android内存优化之磁盘缓存
- Linux下安装Oracle11g服务器
- 前端面试题大全一
- Spring缓存注解@Cache使用
- 日语学习之沪江N3基础 20150623 -4
- iOS 界面中显示网页
- websphere优化
- MySQL Server 5.6在win8.1下安装方法及安装后无MySQL服务的问题解决?
- xcode6中自动布局autolayout和sizeclass的使用
- 黑马程序员——正则表达式
- CSS3实现的立体按钮
- Java设计模式——六大原则之依赖倒置
- unicode下各种类型转换,CString,string,char*,int,char[]