216a4be91b54c49c2eb9176bc88e2d4d87d68bb6.svn-base 2.6 KB
package com.ivt.android.me.utils.publics;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;

import com.ivt.android.me.bean.VCardBean;

public class PullUtils {

	public List<VCardBean> PullParseXML(String xml) {

		List<VCardBean> list = null;
		VCardBean student = null;

		// 构建XmlPullParserFactory
		try {
			XmlPullParserFactory pullParserFactory = XmlPullParserFactory
					.newInstance();
			// 获取XmlPullParser的实例
			XmlPullParser xmlPullParser = pullParserFactory.newPullParser();
			// 设置输入流 xml文件
			xmlPullParser.setInput(new ByteArrayInputStream(xml.getBytes()),
					"UTF-8");

			// 开始
			int eventType = xmlPullParser.getEventType();

			try {
				while (eventType != XmlPullParser.END_DOCUMENT) {
					String nodeName = xmlPullParser.getName();
					switch (eventType) {
					// 文档开始
					case XmlPullParser.START_DOCUMENT:
						list = new ArrayList<VCardBean>();
						break;
					// 开始节点
					case XmlPullParser.START_TAG:
						// 判断如果其实节点为student
						if ("NICKNAME".equals(nodeName)) {
							// 实例化student对象
							student = new VCardBean();
							student.setname(xmlPullParser.nextText());
						} else if ("sex".equals(nodeName)) {
							// 设置sex
							student.setSex(xmlPullParser.nextText());
						} else if ("exp".equals(nodeName)) {
							// 设置exp
							student.setExp(xmlPullParser.nextText());
						} else if ("signature".equals(nodeName)) {
							// 设置signature
							student.setSignature(xmlPullParser.nextText());
						} else if ("avatarUrl".equals(nodeName)) {
							// 设置avatarUrl
							student.setAvatarUrl(xmlPullParser.nextText());
						} else if ("level".equals(nodeName)) {
							// 设置level
							student.setLevel(xmlPullParser.nextText());
						}
						break;
					// 结束节点
					case XmlPullParser.END_TAG:
						if ("vCard".equals(nodeName)) {
							list.add(student);
							student = null;
						}
						break;
					default:
						break;
					}
					eventType = xmlPullParser.next();
				}
			} catch (NumberFormatException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		} catch (XmlPullParserException e) {
			e.printStackTrace();
		}

		return list;
	}

	public static VCardBean Pull(String args) {
		List<VCardBean> list = new PullUtils().PullParseXML(args);
		if (list == null) {
			return null;
		}
		VCardBean xml = list.get(0);
		return xml;
	}

}