网络获取的XML的Pull解析

<?xml version="1.0" encoding="utf-8" ?>
- <students>
 
- <student xuehao="1233">
  <name>张三</name>
  <address>北京市昌平区</address>
- <call>
  <phone>010-37464567</phone>
  <tel>1384950448</tel>
  </call>
  <school>北京大学</school>
  </student>

- <student xuehao="1235">
  <name>张三</name>
  <address>北京海淀</address>
- <call>
  <phone>010-37545457</phone>
  <tel>13849599978</tel>
  </call>
  <school>清华大学</school>
  </student>

</students>

//----------------------以上为要解析的XML---------------------------------------------

//-------------------------------这里text是网络获取得到的数据----------Students  是一个集合--------bean包里的数据没有写---------------

/*
     * <student xuehao="1233">里面的xuehao是由Parser.getAttributeValue(0)得到的
     * <name>张三</name> 里面的name是由Parser.nextText()得到的
     */

//解析XML
    private void toXNL(String text) {
        try {
            Students studentss=null;
            //将读取到的结果码   添加到XML里面
            XmlPullParser Parser = Xml.newPullParser();
            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(text.getBytes());
            Parser.setInput(byteArrayInputStream, "utf-8");
            //通过parse获得项目类型      相当于文件里面的属性吧
            int eventType = Parser.getEventType();
            //判断
            while ((eventType != XmlPullParser.END_DOCUMENT)) {
                String name = Parser.getName();
                switch (eventType) {
                case XmlPullParser.START_TAG:
                    if (name.equals("student")) {
                       studentss=new Students();
                       studentss.setXuehao(Parser.getAttributeValue(0));
                    }
                    else if (name.equals("name")) {
                        String nname = Parser.nextText();
                       studentss.setName(nname);
                    } else if (name.equals("address")) {
                        String address = Parser.nextText();
                        studentss.setAddress(address);
                    } else if (name.equals("phone")) {
                        String phone = Parser.nextText();
                        studentss.setPhone(phone);
                    } else if (name.equals("tel")) {
                        String tel = Parser.nextText();
                        studentss.setTel(tel);
                    }else if (name.equals("school")) {
                        String school = Parser.nextText();

studentss.setSchool(school);
                    }
                    
                    break;
                    case XmlPullParser.END_TAG:
                        if (name.equals("student")) {

//添加到集合
                            students.add(studentss);
                        }
                        break;
                default:
                    break;
                }
                eventType=Parser.next();
            }
        } catch (XmlPullParserException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
    };

时间: 2024-08-28 07:26:06

网络获取的XML的Pull解析的相关文章

基础学习总结(四)---内存获取、XML之PULL解析

外部项目引入如果没找到工程文件要先创建一个android项目在引入. 根据要查看的项目名在项目中搜索逐步查看 ==================== 内存详情获取: 1 public class MainActivity extends Activity { 2 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 setContent

网络获取数据的Xml的Pull解析

网络获取的XML的Pull解析 <?xml version="1.0" encoding="utf-8" ?> - <students> - <student xuehao="1233">  <name>张三</name>   <address>北京市昌平区</address> - <call>  <phone>010-37464567&l

Day01—xml的序列化、xml的pull解析

1.xml的序列化 FileOutputStream os = new FileOutputStream(new File(getFilesDir(),"hai.xml")); //1.获取xml序列化器 XmlSerializer xmlSerializer = Xml.newSerializer(); //2.开始序列化输出流 xmlSerializer.setOutput(os,"utf-8");//os---Outputm,xml文件的写出流,文件的编码格式

android中xml的pull解析

xml的pull解析:    //类加载器加载xml文件 InputStream is = MainActivity.class.getClassLoader().getResourceAsStream("weather.xml"); //生成xml的pull解析器 XmlPullParser pull = Xml.newPullParser(); try { //设置输入流 pull.setInput(is, "utf-8"); //解析器当前处于的状态 int

XML之pull解析

PULL是STAX的一个实现技术STAX是The Streaming API for XML的缩写,是一种利用拉模式解析XML文档的APISTAX通过提供一种基于世界迭代器的API让程序员控制xml文档的解析过程A安卓系统内置的PULL解析器也可以进行XML文件的解析Pull解析器是一个java的开源项目,既可以用于安卓,也可以用于javaEEpull解析器运行方式与SAX解析器相似,同样是基于事件驱动的,是由客户端的程序自己控制xml事件主动调用事件方法当要使用pull解析的方式开发javaE

Android中的XML的Pull解析与生成

1.Pull解析简介 Pull解析是Android系统内置的一种对XML的解析方式,它与SAX解析方式基本一致,都包括开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件.但是它们不同的是,SAX的事件驱动是回调相应方法,需要提供回调的方法,而在SAX内部自动调用相应的方法.而Pull解析器并没有强制要求提供触发的方法.因为它触发的事件并不是一个方法,而是一个数字,至于触发的时间要不要处理,这个可以由程序员自己来决定. 2.五个常量事件 Pull解析器返回的是一

XML的Pull解析

//通过xml解析串    private void XMLtoStr(String result) {        News news=null;        try {            //将读取到的结果码   添加到XML里面            XmlPullParser Parser = Xml.newPullParser();            ByteArrayInputStream byteArrayInputStream = new ByteArrayInput

android保存数据到xml以及pull解析模板

import android.content.Context; import android.text.TextUtils; import android.util.Xml; import com.webjet.yzqg.domain.BaseDocs; import com.webjet.yzqg.domain.UnitDTO; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlSerializer; import ja

pull解析xml

weather.xml <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <weather> <city> <name>上海</name> <temp>5°</temp> <pm>80</pm> </city> <city> <name>北京</name> <temp>-5°&