Android数据存储之XmlPull解析XML文件(读取部分)
2013-05-09 12:50
621 查看
由于DOM解析xml文档需要将整个xml DOM树读入,当文件很大时,这种解析效率很低,而Android自带有一个事件触发型的xml解析器XmlPullParser,与SAX解析方式比较相似,区别在于XmlPullParser允许主动从解析器获取事件,满足条件后结束解析。
首先写XmlPullUtil类(用途:操作解析器),成员变量与构造方法:
其中的getAllPerson()方法实现解析文档,返回一个欲解析节点的对象列表;
View Code
首先写XmlPullUtil类(用途:操作解析器),成员变量与构造方法:
public class XmlPullUtil { // 准备XmlUllParser需要的InputStream private InputStream inputStream = null; private XmlPullParserFactory xppFac = null; private XmlPullParser xpp = null; public XmlPullUtil(InputStream inputStream) { this.inputStream = inputStream; }
其中的getAllPerson()方法实现解析文档,返回一个欲解析节点的对象列表;
View Code
public class MainActivity extends Activity { private TextView idInfoText = null; private TextView nameInfoText = null; private Button readXmlBtn = null; private File file = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); idInfoText = (TextView) findViewById(R.id.idInfoText); nameInfoText = (TextView) findViewById(R.id.nameInfoText); readXmlBtn = (Button) findViewById(R.id.readXmlBtn); readXmlBtn.setOnClickListener(new ReadXmlBtn()); } private class ReadXmlBtn implements OnClickListener { @Override public void onClick(View v) { // 首先调用检测储存环境的方法 if(!MainActivity.this.CheckEnvironment()) { return; } else { try { // 实例化XmlPullUtil类 XmlPullUtil xpu = new XmlPullUtil(new FileInputStream(file)); // 获取persons列表 List<Person> persons = xpu.getAllPerson(); // 显示结果 MainActivity.this.idInfoText.setText(persons.get(0).getId()); MainActivity.this.nameInfoText.setText(persons.get(0).getName()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } } /* 检测储存环境是否配置正常,并设置文件存放路径 */ private boolean CheckEnvironment() { if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { file = new File(Environment.getExternalStorageDirectory().toString() + File.separator + "documents" + File.separator + "shuai.xml"); if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); } return true; } else { return false; } } }
相关文章推荐
- Android数据存储之XmlPull解析XML文件(输出部分)
- Android数据存储之DOM解析XML文件(读取部分)
- Android入门学习笔记(一)|基础知识|文件数据存储读取|解析XML
- Android笔记(四十六) Android中的数据存储——XML(二)PULL解析
- 【Android】pull解析xml文件+将数据存储为xml格式,并保存在内存里
- Android数据存储之JSON数据解析(读取部分)
- Android数据存储---Pull解析Xml文件
- Android数据存储---Pull解析Xml文件
- Android数据存储之DOM解析XML文件(输出部分)
- Android数据存储——2.文件存储_E_Pull解析XML文档
- Android数据存储——2.文件存储_E_Pull解析XML文档
- android_xml解析之 使用SAX读取XML文件
- Android开发学习---使用XmlPullParser解析xml文件
- Android--第三天(XML解析,sharedPreferences进行数据存储,SQLite数据库存储数据,URI,ContentProvider共享数据,监听ContentProvider)
- 在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX、Pull、Dom解析方式。最近做了一个android版的CSDN阅读器,用到了其中的两种(sax,pull)
- Android - 使用XmlPullParser解析从服务器得到的Xml数据
- Android学习第七天————通过android提供的XmlPullParserFactory解析XML文件
- Android下Xml解析技术(四)、pull生成Xml文件
- android使用XmlPullParser来解析XML文件
- Android pull解析XML数据