Android中解析XML总结
2016-06-27 21:25
435 查看
前言:
1>示例XML文件内容
对示例所演示的是如何解析一个XML文件,对于我们要解析的XML文件,其已经放入本应用的文件夹下了;
对于我们要解析的XML文件,其内容如下:
2>认识XmlPullParser
I>解析器的当前事件状态可以通过调用getEventType()方法来知道;
在最开始的时候,解析器是处于START_DOCUMENT的事件状态之中的;
II>
next()方法将会让解析器进入到下一个事件当中,然后其int类型的返回值表明了
解析器当前已处于哪个事件状态之中;
III>
以下事件类型,可以通过next()方法得到:
START_TAG
表明此刻一个XML的开始标签被读取
TEXT
表明此刻一个文本内容被读取,这个文本内容可以通过getText()方法获取到;
END_TAG
一个结束标签被读取
END_DOCUMENT
表明XML文件解析结束
代码示例如下:
MainActivity:
运行结果如下:
总结:
1>
由于本示例中用到了SD的读操作,所以在AndroidManifest.xml中声明一下读权限:
2>
XML文件的解析方式有很多种,在这里采用Pull方式进行解析,在Pull方式解析的过程中:
xmlPullParser.getEventType()主要是用来获取当前解析器处于哪个节点上;
xmlPullParser.getName()主要是用来获取处在START_TAG或者END_TAG事件时的XML标签名
xmlPullParser.getText()主要是用来获取文本内容
xmlPullParser.next()主要是为了让解析器移动到下一个事件上,这样就可以把整个XML文件都遍历完
源码:
解析XML示例源码
1>示例XML文件内容
对示例所演示的是如何解析一个XML文件,对于我们要解析的XML文件,其已经放入本应用的文件夹下了;
对于我们要解析的XML文件,其内容如下:
2>认识XmlPullParser
I>解析器的当前事件状态可以通过调用getEventType()方法来知道;
在最开始的时候,解析器是处于START_DOCUMENT的事件状态之中的;
II>
next()方法将会让解析器进入到下一个事件当中,然后其int类型的返回值表明了
解析器当前已处于哪个事件状态之中;
III>
以下事件类型,可以通过next()方法得到:
START_TAG
表明此刻一个XML的开始标签被读取
TEXT
表明此刻一个文本内容被读取,这个文本内容可以通过getText()方法获取到;
END_TAG
一个结束标签被读取
END_DOCUMENT
表明XML文件解析结束
代码示例如下:
MainActivity:
package com.example.administrator.testparsexml; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.util.Xml; import android.view.View; import org.xmlpull.v1.XmlPullParser; import java.io.File; import java.io.FileReader; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /*** * 现在在本应用的文件夹有一个XML文件下, * 那么下面,我们来对其进行解析操作; * **/ public void parseXML(View view){ XmlPullParser xmlPullParser = Xml.newPullParser(); try { /*** * 指明需要解析的XML文件的位置 * **/ xmlPullParser.setInput(new FileReader(new File(getFilesDir(),"test.xml"))); /*** * 如果没有解析到XML文件的结尾,则继续解析 * ***/ while (xmlPullParser.getEventType() != XmlPullParser.END_DOCUMENT){ if(xmlPullParser.getEventType() == XmlPullParser.START_DOCUMENT){ Log.e("parseXML","开始解析"); }else if(xmlPullParser.getEventType() == XmlPullParser.START_TAG){ Log.e("parseXML",xmlPullParser.getName()); }else if(xmlPullParser.getEventType() == XmlPullParser.TEXT){ Log.e("parseXML",xmlPullParser.getText()); }else if(xmlPullParser.getEventType() == XmlPullParser.END_TAG){ Log.e("parseXML",xmlPullParser.getName()); } /*** * 移到下一个解析事件 * **/ xmlPullParser.next(); } Log.e("parseXML","结束解析"); } catch (Exception e) { e.printStackTrace(); } } }
运行结果如下:
总结:
1>
由于本示例中用到了SD的读操作,所以在AndroidManifest.xml中声明一下读权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
2>
XML文件的解析方式有很多种,在这里采用Pull方式进行解析,在Pull方式解析的过程中:
xmlPullParser.getEventType()主要是用来获取当前解析器处于哪个节点上;
xmlPullParser.getName()主要是用来获取处在START_TAG或者END_TAG事件时的XML标签名
xmlPullParser.getText()主要是用来获取文本内容
xmlPullParser.next()主要是为了让解析器移动到下一个事件上,这样就可以把整个XML文件都遍历完
源码:
解析XML示例源码
相关文章推荐
- Android大图轮播效果的实现-代码逻辑
- android studio Error:Unable to start the daemon process
- Android中<uses-sdk>属性和target属性分析
- Android jni Crash堆栈信息分析
- Android网易评论盖楼效果实现
- Android中生成XML总结
- Android中的动画学习总结
- Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
- Android之ffmpeg-H264解码-移植ffmpeg中的H264解码部分到Android
- [android] 界面切换的核心方法
- Android SD卡读取简单操作
- android之结束所有activity-重点是第二种使用广播结束所有activity
- android之结束所有的activity-Intent.FLAG_ACTIVITY_CLEAR_TOP详细-结束所有activity方法
- android 自定义View 仪表盘 DashboardView 的实现
- Android文件读取简单操作
- 浅谈Android中的线程
- Android Service与Activity之间通信的几种方式
- 文件读取
- Activity的启动方式
- Android消息机制入门