标签:
pull解析和程序运行一样,从上到下执行,一个一个执行,每个节点会有对应的时间码,然后根据名字可以判断出他是那个具体的节点。
package com.example.pullxml; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import android.os.Bundle; import android.app.Activity; import android.util.Xml; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; public class MainActivity extends Activity { private List<Mess> list=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.btn).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // 1)获取src下的资源并返回输入流对象 InputStream in = getClassLoader().getResourceAsStream( "sms2.xml"); // 2)获取pull解析器 XmlPullParser xp = Xml.newPullParser(); try { // 3)初始化 输入流 和解析的编码集 xp.setInput(in, "utf-8"); // 4)获取节点事件 每个节点对应不同的参数,所以我们就能知道这个节点是什么节点,然后我们进行对应的操作 int type = xp.getEventType(); //声明mess封装类 Mess mess=null; // 节点事件不是最后一个节点一直运行 while (type != XmlPullParser.END_DOCUMENT) { switch (type) { case XmlPullParser.START_TAG: //获取节点的名字 if("message".equals(xp.getName())){ //当解析到一级节点的时候开始实例化list list = new ArrayList<Mess>(); }else if("msm".equals(xp.getName())){ //当解析到二级节点的时候开始实例化javabean mess = new Mess(); }else if("body".equals(xp.getName())){ //这个结点是首部结点,而要获取的是下个结点的内容 String body = xp.nextText(); mess.setBody(body); }else if("type".equals(xp.getName())){ mess.setType(xp.nextText()); }else if("date".equals(xp.getName())){ mess.setDate(xp.nextText()); }else if("address".equals(xp.getName())){ mess.setAddress(xp.nextText()); } break; case XmlPullParser.END_TAG: //当获取二级节点的末尾结点说明了这个信息获取完了,要放在list里 if("msm".equals(xp.getName())){ list.add(mess); } break; } // 让指针指向下一个节点并且返回事件参数 type = xp.next(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i).toString()); } } }); } }
标签:
原文地址:http://www.cnblogs.com/84126858jmz/p/4912819.html