Pull解析(解析XML文件)

XML解析与JavaBean实例
本文介绍了一个使用Java进行XML文件解析的例子,并展示了如何通过解析XML数据来填充自定义的JavaBean对象。具体实现了从assets目录下的XML文件中读取数据,并通过XmlPullParser解析器逐个节点地解析数据,最后将解析到的信息存储到PersonBean对象中。

—————MainActivity代码—————

public class MainActivity extends Activity {

private List<PersonBean> list;
private PersonBean personBean;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

//点击开始解析pull
public void getdata(View v){


        try {
            //得到XML文件
            InputStream open = getAssets().open("persons.xml");
            //得到解析工厂
        XmlPullParserFactory newInstance = XmlPullParserFactory.newInstance();
        //得到解析齐
        XmlPullParser newPullParser = newInstance.newPullParser();
        //将文件交给解析器进行解析  1.当前要解析的XML文件   2.格式
        newPullParser.setInput(open, "utf-8");
        //得到事件类型
        int eventType = newPullParser.getEventType();
        //事件的类型 不遇到结束文档 就不停止
        while (eventType!=XmlPullParser.END_DOCUMENT) {
            //判断当前eventType遇到的是那个节点
            switch (eventType) {
            case XmlPullParser.START_DOCUMENT:
                //初始化数据
                list = new ArrayList<PersonBean>();

                break;
            case XmlPullParser.START_TAG://开始标签
                //如果遇到person创建对象
                if(newPullParser.getName().equals("person")){
                    personBean = new PersonBean();
                }else if(newPullParser.getName().equals("name")){
                    //得到值 存入对象
                    String name = newPullParser.nextText();//得到当前的数据
                    personBean.setName(name);
                }else if(newPullParser.getName().equals("age")){
                    String age = newPullParser.nextText();
                    personBean.setAge(age);
                }

                break;
            case XmlPullParser.END_TAG://结束标签
                //如果遇到的是结束标签person 那么就将对象对人集合
                if(newPullParser.getName().equals("person")){
                    list.add(personBean);
                }
                break;

            default:
                break;
            }
            //让eventType向下读取
            eventType = newPullParser.next();
        }


        Log.i("TAG", list.size()+"");
        //作业2:完全掌握  将数据展示在list view上

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


}

}

————–JavaBean代码—————-

public class PersonBean {

private String name;
private String age;
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getAge() {
    return age;
}
public void setAge(String age) {
    this.age = age;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值