Android 之 使用Pull 解析xml文件

/**
 * 使用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(); // 指针转向下一个标签
		}
	}
}

猜你喜欢

转载自sunzone.iteye.com/blog/2033019
今日推荐