zl程序教程

您现在的位置是:首页 >  其它

当前栏目

XmlPull

2023-09-14 08:59:11 时间
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
// 创建解析器。
XmlPullParser parser = factory.newPullParser();
//FileInputStream fis = new FileInputStream("f:\\students.xml");
parser.setInput(new FileReader("f:\\students.xml"));
int type = parser.getEventType();// 得到事件常量。
System.out.println(type);
String tag;
List<Student> list = null;
Student stu = null;
while (type != XmlPullParser.END_DOCUMENT) {
    // 得到标记名称。
    tag = parser.getName();
    switch (type) {
    case XmlPullParser.START_DOCUMENT:
        System.out.println("文档开始解析");
        list = new ArrayList<Student>();

        break;
    case XmlPullParser.START_TAG:// 开始标记
        if ("student".equals(tag)) {
            stu = new Student();
            //查看开始标记的属性名称和属性值。再进行判断。
            /*
            for(int i=0;i<parser.getAttributeCount();i++){
            String name = parser.getAttributeName(i);
            String value = parser.getAttributeValue(i);
            //再进行判断。
            }*/
        } else if ("id".equals(tag)) {
            // 得到标记之间的内容。
            String str = parser.nextText();
            System.out.println(tag + ":" + str);
            stu.id = Integer.parseInt(str);
        } else if ("name".equals(tag)) {
            stu.name = parser.nextText();
        } else if ("age".equals(tag)) {
            String str = parser.nextText();
            System.out.println(tag + ":" + str);
            stu.age = Integer.parseInt(str);
        }
        break;
    case XmlPullParser.END_TAG:// 结束标记
        if ("student".equals(tag)) {
            list.add(stu);
        }
        break;
    default:
        break;
    }
    //跳到下一个标记,得到事件常量。
    type = parser.next();
}
//遍历集合
for(Student s:list){
    System.out.println(s);
}