//导入kxml2-2.3.0.jar xmlpull_1_0_5.jar包
package com.zhidi.test; import static org.xmlpull.v1.XmlPullParser.*;//静态导入 import java.io.FileReader; import java.io.IOException; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; public class PullTest { public static void main(String[] args) throws XmlPullParserException, IOException { // 1.创建解析器工厂类对象 XmlPullParserFactory parserFactory = XmlPullParserFactory.newInstance(); // 2.创建解析器对象 XmlPullParser parser = parserFactory.newPullParser(); // 3.为解析器指定待解析的资源 FileReader xmlData = new FileReader("E:\\sida.xml"); parser.setInput(xmlData); // 4.开始解析 /** * pull解析xml是基于事件的 1.文档开始:START_DOCUMENT 2.标记开始:START_TAG 3.标记结束:END_TAG * 4.文档结束:END_DOCUMENT */ int eventType = parser.getEventType(); while (eventType != END_DOCUMENT) { switch (eventType) { case START_DOCUMENT: System.out.println("开始读取文档"); break; case START_TAG: String tagName = parser.getName();// 获取标记明 switch (tagName) { case "id": String id = parser.nextText();// 获取下个事件的文本信息,标记内容 System.out.println(id); break; case "name": String name = parser.nextText(); System.out.println(name); break; case "author": String author = parser.nextText(); System.out.println(author); break; case "chaodai": String chaodai = parser.nextText(); System.out.println(chaodai); break; case "book": int count = parser.getAttributeCount();// 获取属性的个数 if (count > 0) {// 有属性 for (int i = 0; i < count; i++) { String attrName = parser.getAttributeName(i);// 根据下标获取属性名 String attrValue = parser.getAttributeValue(i);// 根据下标获取属性值 switch (attrName) { case "id": System.out.println(attrValue); break; case "name": System.out.println(attrValue); break; case "author": System.out.println(attrValue); break; case "chaodai": System.out.println(attrValue); break; } } } } break; case END_TAG: tagName = parser.getName(); System.out.println("标记结束" + tagName); break; } eventType = parser.next();// 获取下一个事件 } } }
pull方法解析XML文件
最新推荐文章于 2021-05-26 01:36:21 发布