zoukankan      html  css  js  c++  java
  • Pull解析-解析xml文件

     首先需要导入jar包:kxml2-2.2.2.jar

    例程:

    main:

    /**
     * pull解析
     * 
     * @author my
     *
     */
    public class DemoParserStudent {
        public static void main(String[] args) {
            try {
                // 1.创建解析器工厂对象
                XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
                // 2.创建解析器对象
                XmlPullParser parser = factory.newPullParser();
                // 3.指定数据源
                parser.setInput(new FileReader("Students.xml"));
                // 4.获得响应码
                int code = parser.getEventType();
                Student s = null;
                List<Student> list = null;
                while (code != parser.END_DOCUMENT) {
                    String name = parser.getName();// 获得标签名称
                    switch (code) {
                    case XmlPullParser.START_TAG:
                        if ("Students".equals(name)) {
                            list = new ArrayList<Student>();
                        } else if ("Student".equals(name)) {
                            s = new Student();
    
                        } else if ("name".equals(name)) {
                            s.setName(parser.nextText());
                        } else if ("age".equals(name)) {
                            s.setAge(new Integer(parser.nextText()));
                        } else if ("sex".equals(name)) {
                            s.setSex(parser.nextText());
                        }
                        break;
                    case XmlPullParser.END_TAG:
                        if ("Student".equals(name)) {
                            list.add(s);
                        }
                        break;
                    }
                    code = parser.next();
                }
                for (Student student : list) {
                    System.out.println(student);
                }
            } catch (XmlPullParserException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    Student:

    package com.qf.PullParser;
    
    public class Student {
        String no;
        String name;
        int age;
        String sex;
    
        public String getNo() {
            return no;
        }
    
        public void setNo(String no) {
            this.no = no;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    
        @Override
        public String toString() {
            return "Student [no = " + no + " name=" + name + ", age=" + age + ", sex=" + sex + "]";
        }
    
    }
    View Code
  • 相关阅读:
    C# 图片与Base64的相互转化
    LeetCode 303. Range Sum Query – Immutable
    LeetCode 300. Longest Increasing Subsequence
    LeetCode 292. Nim Game
    LeetCode 283. Move Zeroes
    LeetCode 279. Perfect Squares
    LeetCode 268. Missing Number
    LeetCode 264. Ugly Number II
    LeetCode 258. Add Digits
    LeetCode 257. Binary Tree Paths
  • 原文地址:https://www.cnblogs.com/fangg/p/6013854.html
Copyright © 2011-2022 走看看