欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android 之 使用Pull 解析xml文件

程序员文章站 2022-03-02 19:36:25
...
/**
 * 使用Pull进行 xml 文件的解析
 * 
 * @author Administrator
 * 
 */
public class PullParseService {

	// Pull 解析
	public static void pullParse(InputStream is, String encoding)
			throws Exception {

		// 1、构造工厂实例
		XmlPullParserFactory factory = XmlPullParserFactory.newInstance();

		// 2、构造解析器对象
		XmlPullParser parser = factory.newPullParser();

		// 3、加载要解析的文档
		parser.setInput(is, encoding);

		// pull 解析xml文档采用的是事件处理机制
		int eventType = parser.getEventType(); // 事件类型

		// 开始解析的过程
		while (eventType != XmlPullParser.END_DOCUMENT) { // 未到文档的结尾

			switch (eventType) {
			case XmlPullParser.START_DOCUMENT: // 文档的开始
				Log.i("msg","文档开始解析了,start_document..");
				break;
			case XmlPullParser.START_TAG: // 开始标签头
				// 获取当前元素的值
				if(parser.getName().equals("stu")){
					// parser.getName() 。。。 获取当前标记的标记名称
					Log.i("msg", "编号为:"+parser.getAttributeValue(0));
				}
				if(parser.getName().equals("name")){
					// parser.nextText() 。。。 获取当前标记的文本
					Log.i("msg", "姓名为:"+parser.nextText()); 
				}
				Log.i("msg","开始标签元素为:"+parser.getName());
				
				break;
			case XmlPullParser.END_TAG: // 结束标签
				Log.i("msg","结束标签元素为:"+parser.getName());
				break;
			}
			
			eventType = parser.next(); // 指针转向下一个标签
		}
	}
}