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();// 下一個

              }

相關文章
相關標籤/搜索