本文主要是介绍《第一行代码-Android》学习笔记(二十三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一.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》学习笔记(二十三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!