《第一行代码-Android》学习笔记(二十三)
来源:互联网 发布:jdk1.8源码下载官网 编辑:程序博客网 时间:2024/05/17 09:06
一.Pull解析方式:
a) 获取XmlPullParserFactory的实例:
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
b) 通过XmlPullParserFactory的实例获取到XmlPullParser实例:
XmlPullParser xmlPullParser = factory.newPullParser();
c) 调用XmlPullParser的setInput方法开始解析Xml数据:
xmlPullParser.setInput(new StringReader(result));
d) 获取到eventType,通过while循环,不断的解析每个节点;
e) 在循环中,通过XmlPullParser的getName方法获取到当前节点的名字,在XmlPullParser.START_TAG中,利用nextText()获取到节点的具体内容:
while(eventType != XmlPullParser.END_DOCUMENT){
String nodeName = xmlPullParser.getName();
switch(eventType)
{
case XmlPullParser.START_TAG :
if("id".equals(nodeName))
{
id = xmlPullParser.nextText();
}
else if("name".equals(nodeName))
{
name = xmlPullParser.nextText();
}
else if("version".equals(nodeName))
{
version = xmlPullParser.nextText();
}
break;
case XmlPullParser.END_TAG :
if("app".equals(nodeName))
{
App app = new App();
app.setId(Integer.parseInt(id));
app.setName(name);
app.setVersion(version);
list.add(app);
}
break;
default:
break;
}
eventType = xmlPullParser.next();
}
二.SAX解析方式:
1.新建一个类继承DefaultHandler,并重写父类的五个方法:
a) startDocument()中初始化一些参数
b) startElement()获取nodeName
c) characters()中进行数据的组装
d) endElement()中进行一些清零操作
2.通过SAXParserFactory的类方法获得其实例:
SAXParserFactory factory = SAXParserFactory.newInstance();
3.通过上面的实例获得SAXParser的实例:
SAXParser parser = factory.newSAXParser();
4.通过上面的实例获得XMLReader实例:
XMLReader xmlReader = parser.getXMLReader();
5.将刚刚的DefaultHandler子类的实例传入到XMLReader实例的setContentHandler()方法中:
ContentHandler contentHandler = new ContentHandler();
xmlReader.setContentHandler(contentHandler);
6.开始解析xml:
xmlReader.parse(new InputSource(new StringReader(result)));
7.解析完毕。
- 《第一行代码-Android》学习笔记(二十三)
- 《第一行代码-Android》学习笔记(十三)
- 《第一行代码-Android》学习笔记(二)
- 《第一行代码-Android》学习笔记(二十)
- 《第一行代码-Android》学习笔记(二十二)
- 《第一行代码-Android》学习笔记(二十四)
- 《第一行代码-Android》学习笔记(二十五)
- 第一行代码Android学习(二)
- Android第一行代码学习笔记二----活动
- Android 第一行代码(第二版)学习笔记(二)
- 《第一行代码-Android》学习笔记(二十一)WebView控件总结【修改】
- 《第一行代码》学习笔记--Android入门(一、二、三)
- Android第一行代码学习笔记总结
- 《Android第一行代码》学习笔记
- 《Android第一行代码》学习笔记
- FrameLayout《第一行代码Android》学习笔记
- Android第一行代码学习笔记
- Android学习笔记_《第一行代码》
- HDU 2586 How far away ? (离线LCA Tarjan算法模板)
- 又来了,上班又开始了,奋斗还得继续....
- Hadoop-2.6.0集群HA搭建
- inline-block总结
- 计算机字节对齐
- 《第一行代码-Android》学习笔记(二十三)
- Codeforces 514E Darth Vader and Tree DP + 矩阵快速幂
- 为CToolBar工具栏窗口按钮添加ICON图标需要注意的一点
- LeetCode(2) Add Two Numbers实现
- CVS导出所有项目提交注释的Eclipse插件(类似于svn的showhistory)
- iOS应用如何实现64位的支持
- android的UI开发中如何确定登陆界面
- html+css实现图片流动
- Java设计模式-9-访问者模式