Android(java)的xml文件操作
来源:互联网 发布:淘宝女装前十名店铺 编辑:程序博客网 时间:2024/05/14 05:36
XML解析三种方式
PULL
Android自带的XML解析器,和SAX基本类似,也是事件驱动,不同的是PULL事件返回的是数值型;推荐使用。
PULL解析XML核心代码
- XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
- parser.setInput(fileInputStream, “utf-8”);//设置数据源编码
- int eventCode = parser.getEventType();//获取事件类型
- while(eventCode != XmlPullParser.END_DOCUMENT) {
- switch (eventCode){
- case XmlPullParser.START_DOCUMENT: //开始读取XML文档
- //实例化集合类
- break;
- case XmlPullParser.START_TAG://开始读取某个标签
- if("person".equals(parser.getName())) {
- //通过getName判断读到哪个标签,然后通过nextText()获取文本节点值,或通过getAttributeValue(i)获取属性节点值
- }
- break;
- case XmlPullParser.END_TAG://读完一个Person,可以将其添加到集合类中
- break;
- }
- parser.next();
- }
另一个实例:
- XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
- parser.setInput(fileInputStream, “utf-8”);//设置数据源编码
- int eventCode = parser.getEventType();//获取事件类型
- while(eventCode != XmlPullParser.END_DOCUMENT) {
- switch (eventCode){
- case XmlPullParser.START_DOCUMENT: //开始读取XML文档
- //实例化集合类
- break;
- case XmlPullParser.START_TAG://开始读取某个标签
- if("person".equals(parser.getName())) {
- //通过getName判断读到哪个标签,然后通过nextText()获取文本节点值,或通过getAttributeValue(i)获取属性节点值
- }
- break;
- case XmlPullParser.END_TAG://读完一个Person,可以将其添加到集合类中
- break;
- }
- parser.next();
- }
XmlPullParser parser = Xml.newPullParser(); File xmlFile = new File("/xxxx/product.xml"); if(xmlFile.exists()){ String model = ""; String needAdb = ""; try { InputStream open = new FileInputStream(xmlFile); parser.setInput(open, "UTF-8"); XmlUtils.beginDocument(parser, "product"); model = parser.getAttributeValue(null, "model"); } catch (XmlPullParserException e) { Log.e(TAG, "XmlPullParserException failed"); e.printStackTrace(); } catch (IOException e) { Log.e(TAG, "IOException failed"); e.printStackTrace(); } Log.d(TAG, "Product Model=" + model + ", needAdb=" + needAdb + ";"); }
DOM
通用性强,它会将XML文件的所有内容读取到内存中,然后允许您使用DOM API遍历XML树、检索所需的数据;
简单直观,但需要将文档读取到内存,并不太适合移动设备;
SAX
SAX是一个解析速度快并且占用内存少的xml解析器;
采用事件驱动,它并不需要解析整个文档;
实现:继承DefaultHandler,覆写startElement、endElement、characters等方法;
0 0
- Android(java)的xml文件操作
- Android Xml文件操作
- java操作xml文件
- Java 操作XML文件
- Java操作XML文件
- Java操作xml文件
- Java操作XML文件
- java xml文件操作
- java操作xml文件
- java操作xml文件
- Java操作xml文件
- Java:操作XML文件
- android 读写xml,修改appserver.xml(根据appserver.xml文件的位置进行操作)
- Java 对xml文件的读写操作
- java对xml文件的操作
- Java 对xml文件的读写操作
- Java操作xml文件的心得
- JAVA对xml文件的操作
- Error description: Error during query execution. Operation 'setPosition' failed.
- spring4.3.5文件上传功能
- jQuery的each 方法
- 小程序-页面生命周期
- jmeter基础用法
- Android(java)的xml文件操作
- 毕业工作那会的年终总结,眨眼又五年过去了
- Maven 项目管理 02
- Leetcode Validate Binary Search Tree
- Servlet工作原理摘要
- undefined reference to 'vtable for ***(类)'
- 进程间通信 - 命名管道实现
- Java数据类型和MySql数据类型对应表
- TEC1304.值集和弹性域相关技术总结 - 第一章 值和值集详解