Android开发之使用pull解析XML文件

Android已经集成进了Pull解析器,因此无需添加任何jar文件。android系统自己使用到的各类xml文件,其内部也是采用Pull解析器进行解析的。 Pull解析器的运行方式与 SAX 解析器类似。它提供了相似的事件,如:开始元素和结束元素事件,使用parser.next()能够进入下一个元素并触发相应事件。跟SAX不一样的是, Pull解析器产生的事件是一个数字,而非方法,所以能够使用一个switch对感兴趣的事件进行处理。当元素开始解析时,调用parser.nextText()方法能够获取下一个Text类型节点的值。android

pull解析xml步骤主要以下:编码

假设解析下列xml文件:spa

<?xml version="1.0" encoding="UTF-8"?>xml

<persons>对象

       <person id=“18">事件

              <name>allen</name>utf-8

              <age>36</age>get

       </person>it

       <person id=“28">io

              <name>james</name>

              <age>25</age>

       </person>

</persons>

1)得到pull解析器对象

XmlPullParser parser = Xml.newPullParser();

2)指定解析的文件和编码格式

parser.setInput(fis, "utf-8");

3)得到事件类型(得到各标签类型)

int eventType = parser.getEventType();

4)根据各标签信息进行必要数据的读取

while(eventType != XmlPullParser.END_DOCUMENT) {

//没有到结束标签

String tagName = parser.getName();      // 得到当前节点的名称

switch (eventType) {

        case XmlPullParser.START_TAG: // 当前等于开始节点<person>

                                   if("persons".equals(tagName)) {  // <persons>

                              //相关操做

                                   } else if("person".equals(tagName)) { // <person id="1">

                                   //相关操做

                                   } else if("name".equals(tagName)) { // <name>

                                          person.setName(parser.nextText());

                                   } else if("age".equals(tagName)) { // <age>

                                   //相关操做

                                   }

                                   break;

                            case XmlPullParser.END_TAG:       //读取结束 </persons>

                                   if("persons".equals(tagName)) {

                //相关操做

                                   }

                                   break;

                            default:

                                   break;

                            }

                  eventType = parser.next();// 下一个

              }

相关文章
相关标签/搜索