pull解析

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();
//如果结束标签为
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();
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值