码迷,mamicode.com
首页 > 其他好文 > 详细

解析XML

时间:2017-02-20 22:47:33      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:解析   eve   实例   event   reader   get   gre   tco   cte   

Pull解析

1、获取XmlPullParserFactory实例

  XmlPullParserFactory factory = XmlPullParserFactory.newInstanc();

2、借助XmlPullparserFactory实例获取XmlPullParser对象

  XmlPullParser xmlPullParser = factory.newPullParser();

3、调用setInput()解析数据

  xmlPullParserl.setInput(new StringReader(xmlData));

4、调用getEvent()得到当前解析事件

  int eventType = xmlPullParser.getEventType();

5、利用while循环解析

  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)){

        Log.d("MainActivity","id is"+id);

        Log.d("MainActivity","name is"+name);

        Log.d("MainActivity","version is"+version);

      }

      break;

    default:

      break;

  }

  eventType = xmlPullParser.next();

 }

......

 

SAX解析

1、创建一个类继承自DefaultHandler,并重写5个方法(startDocument()、startElement()、characters()、endElement()、endDocument())

2、创建SAXParserFactory实例

  SAXParserFactory factory = SAXParserFactory.newInstance();

3、通过factory创建XMLReader对象

  XMLReader xmlReader = factory.newSAXParser().getXMLReader();

4、创建ContentHandler对象

  ContentHandler handler = new ContentHandler();

5、将ContentHandler的实例设置到XMLReader中

  xmlReader.setContentHandler(handler);

6、开始解析

  xmlParser.parse(new InputSource(new StringReader(xmlData)));

          

  

解析XML

标签:解析   eve   实例   event   reader   get   gre   tco   cte   

原文地址:http://www.cnblogs.com/yl-saber/p/6421812.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!