解析XML格式数据

学习解析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)));

 

posted @ 2017-02-05 21:36  花臣酒卒  阅读(514)  评论(0编辑  收藏  举报