解析XML字符串

来源:互联网 发布:禄宏微交易软件下载 编辑:程序博客网 时间:2024/06/06 03:33

写一个简单的解析字符串

创建assets文件夹,里面放要解析的字符

<?xml version="1.0" encoding="UTF-8" ?><Students>    <student>        <no>1</no>        <name>张三</name>        <sex></sex>    </student>    <student>        <no>2</no>        <name>赵六</name>        <sex></sex>    </student>    <student>        <no>3</no>        <name>李五</name>        <sex></sex>    </student></Students>

开始解析

package alice.bw.com.day10json.xmldemo;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;import org.xmlpull.v1.XmlPullParserFactory;import java.io.IOException;import java.util.ArrayList;import alice.bw.com.day10json.R;public class MainXmlActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main_xml);    }    public void onClick(View view) throws XmlPullParserException, IOException {        switch (view.getId()){            case R.id.pull_btn:                pareXMlStuJx();                break;            case R.id.pull_phone_btn:                break;        }    }    private void pareXMlStuJx() throws XmlPullParserException, IOException {        ArrayList<Student> list = new ArrayList<>();        //解析工厂        XmlPullParserFactory  xppf = XmlPullParserFactory.newInstance();        //获取解析器        XmlPullParser xpp = xppf.newPullParser();        //设置要解析的文件        xpp.setInput(getResources().getAssets().open("Students.xml"),"UTF-8");        //获取事件类型        int type = xpp.getEventType();        Student stu = null;        while (type!=xpp.END_DOCUMENT){            //解析            switch (type){                //前标签                case XmlPullParser.START_TAG:                    String name = xpp.getName();//标签的名字                    switch (name){                        case "student":                          stu = new Student();                            break;                        case "no":                            stu.setNo(Integer.parseInt(xpp.nextText()));                            break;                        case "name":                            stu.setName(xpp.nextText());                            break;                        case "sex":                            stu.setSex(xpp.nextText());                            break;                    }                    break;                //后标签                case XmlPullParser.END_TAG:                    String endname = xpp.getName();                    if(endname.equals("student")){                        list.add(stu);                    }                    break;            }            type = xpp.next();        }        for (int i = 0; i <list.size(); i++) {            Log.d("sxl", "pareXMlStuJx: "+list.get(i).toString());        }    }}

下面这个是创建的学生类

package alice.bw.com.day10json.xmldemo;/** * @author alice * @version 1.0 * @Date 2017/10/11 15:28 */public class Student {    private int no;    private String name;    private String sex;    public Student(int no, String name, String sex) {        this.no = no;        this.name = name;        this.sex = sex;    }    public Student() {    }    @Override    public String toString() {        return "Student{" +                "no=" + no +                ", name='" + name + '\'' +                ", sex='" + sex + '\'' +                '}';    }    public int getNo() {        return no;    }    public void setNo(int no) {        this.no = no;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }}
原创粉丝点击