xml解析工具类之XmlPullParser解析

import java.io.Reader;
import java.io.StringReader;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
/**
 * @author Super Zheng
 */
public class XmlParseUtil {

	public static Map xmlParse(Reader reader){
		Map map = new HashMap<>();
		try {
			// 获得一个XmlPullParser解析器
			XmlPullParser newPullParser = XmlPullParserFactory.newInstance().newPullParser();
			// 设置解析输入流
			newPullParser.setInput(reader);
			// 获取当前事件类型
			int eventType = newPullParser.getEventType();
			
		    /*
		         文档开始标识
		    public static final int START_DOCUMENT = 0;
	                   文档结束标识
		    public static final int END_DOCUMENT = 1;
		         标签开始标识
		    public static final int START_TAG = 2;
		         标签结束标识
		    public static final int END_TAG = 3;
		    */
			
			// 判断当前事件类型
			while(eventType!=XmlPullParser.END_DOCUMENT){
				// 当前标签的名字
				String name = newPullParser.getName();
				if(!"xml".equals(name)&&eventType==XmlPullParser.START_TAG){
					// 当前标签对应的值
					String nextText = newPullParser.nextText();
					map.put(name, nextText);
				}
				// 改变当前的eventType
				eventType=newPullParser.next();
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return map;
	}
	
	// 测试代码
	public static void main(String[] args) {
		String xml = ""
				+ ""
				+ "1505114547" + ""
				+ "" + "6464417756529124601" + "";;
		Map map = XmlParseUtil.xmlParse(new StringReader(xml));
		Set> entrySet = map.entrySet();
		for (Entry entry : entrySet) {
			System.out.println(entry.getKey()+" : "+entry.getValue());
		}
	}
}

测试工具类结果:

xml解析工具类之XmlPullParser解析_第1张图片 

 

你可能感兴趣的:(其他)