PULL解析XML檔案,pull解析xml
<?xml version="1.0" encoding="UTF-8"?><students><student id="1001"><stuno>1001</stuno><name>張三</name><sex>男</sex><grade>Java一班</grade></student><student id="1002"><stuno>1002</stuno><name>李四</name><sex>女</sex><grade>Java二班</grade></student><student id="1003"><stuno>1003</stuno><name>小二</name><sex>男</sex><grade>Java三班</grade></student><student id="1004"><stuno>1004</stuno><name>小蠟</name><sex>女</sex><grade>Java四班</grade></student></students>
1 package xmlpulldemo; 2 3 import java.io.FileInputStream; 4 import java.io.IOException; 5 6 import org.xmlpull.v1.XmlPullParser; 7 import org.xmlpull.v1.XmlPullParserException; 8 import org.xmlpull.v1.XmlPullParserFactory; 9 10 public class XmlPullDemo {11 12 public static void main(String[] args) throws XmlPullParserException, IOException {13 14 // 建立一個解析工廠15 XmlPullParserFactory factory = XmlPullParserFactory.newInstance();16 // 由工廠建立一個解析器對象17 XmlPullParser parser = factory.newPullParser();18 // 開啟xml文檔對應的輸入資料流,填寫xml文檔的路徑19 parser.setInput(new FileInputStream("src/xmlwendang/student.xml"), "UTF-8");20 // 獲得事件類型21 int eventType = parser.getEventType();22 System.out.println(eventType == XmlPullParser.START_DOCUMENT);23 do {24 switch (eventType) {25 case XmlPullParser.START_DOCUMENT:26 System.out.println("讀取開始,開始文檔!");27 break;28 case XmlPullParser.START_TAG:29 String tagName = parser.getName();30 if (tagName.equals("student")) {31 System.out.println("讀取進度-開始標籤:" + parser.getName() + ":" + parser.getAttributeName(0) + ":"32 + parser.getAttributeValue(0));33 } else if (tagName.equals("stuno")) {34 System.out.println("讀取進度-學號:" + parser.nextText());35 } else if (tagName.equals("name")) {36 System.out.println("讀取進度-姓名:" + parser.nextText());37 } else if (tagName.equals("sex")) {38 System.out.println("讀取進度-性別:" + parser.nextText());39 } else if (tagName.equals("grade")) {40 System.out.println("讀取進度-班級:" + parser.nextText());41 } else if (tagName.equals("students")) {42 System.out.println("讀取開始-開始根目錄:" + parser.getName());43 }44 break;45 case XmlPullParser.END_TAG:46 if (parser.getName().equals("student")) {47 System.out.println("讀取進度-結束標籤:" + parser.getName());48 } else if (parser.getName().equals("students")) {49 System.out.println("讀取完成-結束根目錄:" + parser.getName());50 }51 break;52 }53 // 讀取下一個節點54 eventType = parser.next();55 } while (eventType != XmlPullParser.END_DOCUMENT);56 System.out.println("讀取完成,文檔結束!");57 }58 59 }
結果:
1 true 2 讀取開始,開始文檔! 3 讀取開始-開始根目錄:students 4 讀取進度-開始標籤:student:id:1001 5 讀取進度-學號:1001 6 讀取進度-姓名:張三 7 讀取進度-性別:男 8 讀取進度-班級:Java一班 9 讀取進度-結束標籤:student10 讀取進度-開始標籤:student:id:100211 讀取進度-學號:100212 讀取進度-姓名:李四13 讀取進度-性別:女14 讀取進度-班級:Java二班15 讀取進度-結束標籤:student16 讀取進度-開始標籤:student:id:100317 讀取進度-學號:100318 讀取進度-姓名:小二19 讀取進度-性別:男20 讀取進度-班級:Java三班21 讀取進度-結束標籤:student22 讀取進度-開始標籤:student:id:100423 讀取進度-學號:100424 讀取進度-姓名:小蠟25 讀取進度-性別:女26 讀取進度-班級:Java四班27 讀取進度-結束標籤:student28 讀取完成-結束根目錄:students29 讀取完成,文檔結束!