Xml之Sax解析

来源:互联网 发布:淘宝q币劵 lol半价 编辑:程序博客网 时间:2024/06/15 00:19
1一只小猫(标签中不带属性信息)
代码
1
public class Demo01 {
2
3
    /**
4
     * @param args
5
     * @throws Exception 
6
     * @throws ParserConfigurationException 
7
     */
8
    public static void main(String[] args) throws ParserConfigurationException, Exception {
9
        //1.创建解析器工厂
10
        SAXParserFactory factory = SAXParserFactory.newInstance();
11
        //2.利用工厂创建解析器的对象
12
        SAXParser parser = factory.newSAXParser();
13
        //3.解析xml
14
        MyHandler dh = new MyHandler();
15
        parser.parse("cat.xml", dh);
16
        List<Cat> list = dh.getList();
17
        for(Cat cat:list){
18
            System.out.println(cat);
19
        }
20
    }
21
22
}
1
注意:不要写有参数的构造方法.因为是解析一个传一个值,不能一起传,写了还的再写一个无参的构造方法
2
public class Cat {
3
    private String id;
4
    private String name;
5
    public String getId() {
6
        return id;
7
    }
8
    public void setId(String id) {
9
        this.id = id;
10
    }
11
    public String getName() {
12
        return name;
13
    }
14
    public void setName(String name) {
15
        this.name = name;
16
    }
17
    @Override
18
    public String toString() {
19
        return "Cat [id=" + id + ", name=" + name + "]";
20
    }
21
    
22
}
2一个学生(标签不带属性信息)
代码
1
/**用SAX解析student.xml
2
 * @author Administrator
3
 *
4
 */
5
public class Demo01Student {
6
7
    public static void main(String[] args) throws Exception, SAXException {
8
        SAXParserFactory factory = SAXParserFactory.newInstance();
9
        SAXParser parser = factory.newSAXParser();
10
        File file = new File("student.xml"); 
11
        MyHandler mh = new MyHandler();
12
        parser.parse(file, mh);
13
        ArrayList<Student> list = mh.getList();
14
        Iterator<Student> it = list.iterator();
15
        while(it.hasNext()){
16
            Student student = it.next();
17
            System.out.println(student);
18
        }
19
    }
20
21
}
1
public class Student {
2
    private String id;
3
    private String name;
4
    private int age;
5
    private String sex;
6
    @Override
7
    public String toString() {
8
        return "Student [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + "]";
9
    }
10
    public String getId() {
11
        return id;
12
    }
13
    public void setId(String id) {
14
        this.id = id;
15
    }
16
    public String getName() {
17
        return name;
18
    }
19
    public void setName(String name) {
20
        this.name = name;
21
    }
22
    public int getAge() {
23
        return age;
24
    }
25
    public void setAge(int age) {
26
        this.age = age;
27
    }
28
    public String getSex() {
29
        return sex;
30
    }
31
    public void setSex(String sex) {
32
        this.sex = sex;
33
    }
34
    
35
}
第2个学生(标签中带有属性信息)
代码
1
public class Demo02Student {
2
3
    public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
4
        SAXParserFactory factory = SAXParserFactory.newInstance();
5
        SAXParser parser = factory.newSAXParser();
6
        File file = new File("student02.xml"); 
7
        MyHandler mh = new MyHandler();
8
        parser.parse(file, mh);
9
        ArrayList<Student> list = mh.getList();
10
        Iterator<Student> it = list.iterator();
11
        while(it.hasNext()){
12
            Student student = it.next();
13
            System.out.println(student);
14
        }
15
    }
16
17
}
1
public class Student {
2
    private String id;
3
    private String name;
4
    private int age;
5
    private String sex;
6
    @Override
7
    public String toString() {
8
        return "Student [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + "]";
9
    }
10
    public String getId() {
11
        return id;
12
    }
13
    public void setId(String id) {
14
        this.id = id;
15
    }
16
    public String getName() {
17
        return name;
18
    }
19
    public void setName(String name) {
20
        this.name = name;
21
    }
22
    public int getAge() {
23
        return age;
24
    }
25
    public void setAge(int age) {
26
        this.age = age;
27
    }
28
    public String getSex() {
29
        return sex;
30
    }
31
    public void setSex(String sex) {
32
        this.sex = sex;
33
    }
34
    
35
}
一本书(标签中带有属性信息)
代码
1
public class Demo04Book {
2
3
    public static void main(String[] args) throws Exception {
4
        // TODO Auto-generated method stub
5
        SAXParserFactory factory = SAXParserFactory.newInstance();
6
        SAXParser parser = factory.newSAXParser();
7
        MyHandler mh = new MyHandler();
8
        parser.parse("books.xml", mh);
9
        ArrayList<Book> list = mh.getList();
10
        for(Book b:list){
11
            System.out.println(b);
12
        }
13
    }
14
15
}
1
public class Book {
2
    /*<book category="java">
3
        <title lang="english">java基础</title>
4
        <author>gosling</author>
5
        <year>2014</year>
6
        <price>200</price>
7
    </book>*/
8
    private String category;
9
    private String lang;
10
    private String title;
11
    private String author;
12
    private int year;
13
    private double price;
14
    @Override
15
    public String toString() {
16
        return "Book [category=" + category + ", lang=" + lang + ", title=" + title + ", author=" + author + ", year="
17
                + year + ", price=" + price + "]";
18
    }
19
    public String getCategory() {
20
        return category;
21
    }
22
    public void setCategory(String category) {
23
        this.category = category;
24
    }
25
    public String getLang() {
26
        return lang;
27
    }
28
    public void setLang(String lang) {
29
        this.lang = lang;
30
    }
31
    public String getTitle() {
32
        return title;
33
    }
34
    public void setTitle(String title) {
35
        this.title = title;
36
    }
37
    public String getAuthor() {
38
        return author;
39
    }
40
    public void setAuthor(String author) {
41
        this.author = author;
42
    }
43
    public int getYear() {
44
        return year;
45
    }
46
    public void setYear(int year) {
47
        this.year = year;
48
    }
49
    public double getPrice() {
50
        return price;
51
    }
52
    public void setPrice(double price) {
53
        this.price = price;
54
    }
55
    
56
}
原创粉丝点击