package com.example.day14_xmlpull; import java.io.IOException; 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; /** * 解析Xml * * @author gaoyn * */ public class MainActivity extends Activity { List<Person> persons = new ArrayList<Person>(); private String tagname; Person p; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } // 解析xml文件的方法 public void pullxml(View v) { // 1 得到pull解析器 XmlPullParser xmlParser = Xml.newPullParser(); try { // 2 加载需要解析的文件 xmlParser.setInput(getAssets().open("data.xml"), "utf-8"); // 3 开始读取文档 int type = xmlParser.getEventType(); // 如果文档没有读到结束标签,循环进行读取文档内容 while (type != XmlPullParser.END_DOCUMENT) { // 读取tag标签 switch (type) { case XmlPullParser.START_DOCUMENT: System.out.println("开始读取文档+++++++++++++++++"); break; case XmlPullParser.START_TAG: // 如果读取到开始标签,把标签名进行读取<person> tagname = xmlParser.getName(); System.out.println(tagname+"++++++++++++++++标签名"); if (tagname.equals("person")) { p = new Person(); // 得到标签person中的属性值 String sid = xmlParser.getAttributeValue(0).trim(); p.setId(Integer.parseInt(sid)); } break; case XmlPullParser.TEXT: if (tagname.equals("name")) { p.setName(xmlParser.getText()); } else if (tagname.equals("age")) { // System.out.println(xmlParser.getText()); String sage = xmlParser.getText().trim(); p.setAge(Integer.parseInt(sage)); } break; case XmlPullParser.END_TAG: //结束时,对标签名赋值 tagname=xmlParser.getName(); //如果结束标签为</person> if (tagname.equals("person")) { persons.add(p); } tagname=""; break; default: break; } /** * 业务逻辑处理 */ type = xmlParser.next(); } System.out.println("文档读取完毕++++++++++++++++++" + persons); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
xml_pull
猜你喜欢
转载自zhengaihua.iteye.com/blog/2325470
今日推荐
周排行