学习解析XML格式的数据前,搭建一个简单的web服务器,在这个服务器上提供xml文本用于练习。
一、搭建Apache服务器
在Apache官网下载编译好的服务器程序,安装。对于Windows来说127.0.0.1就是本机地址,对于Android虚拟机来说,10.0.2.2就是本机的IP地址。
二、Pull方式解析XML
步骤:
1:获取XmlPullParserFactory实例
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
2、借助XmlPullParserFactory实例获取XmlPullParser实例
XmlPullParser xmlPullParser = factory.newPullParser();
3、调用XmlPullParser的setinput将获取的服务器返回数据设置进去,
4、开始解析
getEventType()获取当前解析事件,next()获取下一个解析事件,getName获取当前节点的名字,nextText()获得节点具体内容。
三、SAX解析XML
使用SAX解析XML语义更加清晰,通常新建一个类继承自DefaultHandler,并重写父类的5个方法:
startDocument()方法会在开始解析XML的时候调用,startElement()会在开始解析某个节点的时候调用,characters()方法会在获取节点内容的时候调用,endElement会在完成某个节点解析的时候调用,endDocument()会在完成整个xml解析的时候调用。步骤如下:
1、创建一个SAXParserFactory实例
SAXParseFactoy factory = SAXParseFactory.newInstance();
2、借助SAXParserFactory获取XMLReader实例
XMLReader xmlReader = factory.newSAXParser().getXMLReader();
3、新建一个类继承自DefualtHandler,并重写其5个方法,
ContentHandler handler = new ContentHandler();其中,ContentHandler类为自定义的类。
4、将ContentHandler类的实例设置大XMLReader中
xmlReader.setContentHandler(handler);
5、开始解析
xmlReader.parse(new InputSource(new StringReader(xmlData)));