<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時注明出處http://www.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時注明出處http://www.tkk7.com/sxyx2008/謝謝合作!!!

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
              sax方式解析xml的優(yōu)點:
              只要有jdk的存在,嚴(yán)格意義上來說是jre,它就可以運行,不依賴任何第三方的jar包。在移動設(shè)備上尤為廣泛使用。比如Android就使用它來解析xml。當(dāng)然Android更為推薦的是采用xmlpull來解析xml。這種方式也同樣適合javase。我在后期會為大家準(zhǔn)備使用xmlpull解析xml的demo。敬請關(guān)注。
              xml文件:
    <?xml version="1.0" encoding="UTF-8"?>
    <root>
        
    <student id="1" group="1">
            
    <name>張三</name>
            
    <sex></sex>
            
    <age>18</age>
            
    <email>zhangsan@163.com</email>
            
    <birthday>1987-06-08</birthday>
            
    <memo>好學(xué)生</memo>
        
    </student>
        
    <student id="2" group="2">
            
    <name>李四</name>
            
    <sex></sex>
            
    <age>18</age>
            
    <email>lisi@163.com</email>
            
    <birthday>1987-06-08</birthday>
            
    <memo>好學(xué)生</memo>
        
    </student>
        
    <student id="3" group="3">
            
    <name>小王</name>
            
    <sex></sex>
            
    <age>18</age>
            
    <email>xiaowang@163.com</email>
            
    <birthday>1987-06-08</birthday>
            
    <memo>好學(xué)生</memo>
        
    </student>
        
    <student id="4" group="4">
            
    <name>小張</name>
            
    <sex></sex>
            
    <age>18</age>
            
    <email>xiaozhang@163.com</email>
            
    <birthday>1987-06-08</birthday>
            
    <memo>好學(xué)生</memo>
        
    </student>
        
    <student id="5" group="5">
            
    <name>小明</name>
            
    <sex></sex>
            
    <age>18</age>
            
    <email>xiaoming@163.com</email>
            
    <birthday>1987-06-08</birthday>
            
    <memo>好學(xué)生</memo>
        
    </student>
    </root>
        xml對應(yīng)的Javabean:
    package com.parsexml.entity;

    public class Student {
        
        
    private int id;
        
    private int group;
        
    private String name;
        
    private String sex;
        
    private int age;
        
    private String email;
        
    private String memo;
        
    private String birthday;
        
    public int getId() {
            
    return id;
        }
        
    public void setId(int id) {
            
    this.id = id;
        }
        
    public int getGroup() {
            
    return group;
        }
        
    public void setGroup(int group) {
            
    this.group = group;
        }
        
    public String getName() {
            
    return name;
        }
        
    public void setName(String name) {
            
    this.name = name;
        }
        
    public String getSex() {
            
    return sex;
        }
        
    public void setSex(String sex) {
            
    this.sex = sex;
        }
        
    public int getAge() {
            
    return age;
        }
        
    public void setAge(int age) {
            
    this.age = age;
        }
        
    public String getEmail() {
            
    return email;
        }
        
    public void setEmail(String email) {
            
    this.email = email;
        }
        
    public String getMemo() {
            
    return memo;
        }
        
    public void setMemo(String memo) {
            
    this.memo = memo;
        }
        
    public String getBirthday() {
            
    return birthday;
        }
        
    public void setBirthday(String birthday) {
            
    this.birthday = birthday;
        }
        
    }
        開始解析:
    package com.parsexml;

    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.List;

    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;

    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;

    import com.parsexml.entity.Student;

    /**
     * 功能描述:采用sax方式解析XML<br>
     * 
     * 
    @author sxyx2008
     *
     
    */
    public class SaxParseXml extends DefaultHandler{

        
    //存放遍歷集合
        private List<Student> list;
        
    //構(gòu)建Student對象
        private Student student;
        
    //用來存放每次遍歷后的元素名稱(節(jié)點名稱)
        private String tagName;
        
        
        
    public List<Student> getList() {
            
    return list;
        }


        
    public void setList(List<Student> list) {
            
    this.list = list;
        }


        
    public Student getStudent() {
            
    return student;
        }


        
    public void setStudent(Student student) {
            
    this.student = student;
        }


        
    public String getTagName() {
            
    return tagName;
        }


        
    public void setTagName(String tagName) {
            
    this.tagName = tagName;
        }


        
    //只調(diào)用一次  初始化list集合  
        @Override
        
    public void startDocument() throws SAXException {
            list
    =new ArrayList<Student>();
        }
        
        
        
    //調(diào)用多次    開始解析
        @Override
        
    public void startElement(String uri, String localName, String qName,
                Attributes attributes) 
    throws SAXException {
            
    if(qName.equals("student")){
                student
    =new Student();
                
    //獲取student節(jié)點上的id屬性值
                student.setId(Integer.parseInt(attributes.getValue(0)));
                
    //獲取student節(jié)點上的group屬性值
                student.setGroup(Integer.parseInt(attributes.getValue(1)));
            }
            
    this.tagName=qName;
        }
        
        
        
    //調(diào)用多次  
        @Override
        
    public void endElement(String uri, String localName, String qName)
                
    throws SAXException {
            
    if(qName.equals("student")){
                
    this.list.add(this.student);
            }
            
    this.tagName=null;
        }
        
        
        
    //只調(diào)用一次
        @Override
        
    public void endDocument() throws SAXException {
        }
        
        
    //調(diào)用多次
        @Override
        
    public void characters(char[] ch, int start, int length)
                
    throws SAXException {
            
    if(this.tagName!=null){
                String date
    =new String(ch,start,length);
                
    if(this.tagName.equals("name")){
                    
    this.student.setName(date);
                }
                
    else if(this.tagName.equals("sex")){
                    
    this.student.setSex(date);
                }
                
    else if(this.tagName.equals("age")){
                    
    this.student.setAge(Integer.parseInt(date));
                }
                
    else if(this.tagName.equals("email")){
                    
    this.student.setEmail(date);
                }
                
    else if(this.tagName.equals("birthday")){
                    
    this.student.setBirthday(date);
                }
                
    else if(this.tagName.equals("memo")){
                    
    this.student.setMemo(date);
                }
            }
        }
        
        
        
        
    public static void main(String[] args) {
            SAXParser parser 
    = null;
            
    try {
                
    //構(gòu)建SAXParser
                parser = SAXParserFactory.newInstance().newSAXParser();
                
    //實例化  DefaultHandler對象
                SaxParseXml parseXml=new SaxParseXml();
                
    //加載資源文件 轉(zhuǎn)化為一個輸入流
                InputStream stream=SaxParseXml.class.getClassLoader().getResourceAsStream("Student.xml");
                
    //調(diào)用parse()方法
                parser.parse(stream, parseXml);
                
    //遍歷結(jié)果
                List<Student> list=parseXml.getList();
                
    for(Student student:list){
                    System.out.println(
    "id:"+student.getId()+"\tgroup:"+student.getGroup()+"\tname:"+student.getName()+"\tsex:"+student.getSex()+"\tage:"+student.getAge()+"\temail:"+student.getEmail()+"\tbirthday:"+student.getBirthday()+"\tmemo:"+student.getMemo());
                }
            } 
    catch (ParserConfigurationException e) {
                e.printStackTrace();
            } 
    catch (SAXException e) {
                e.printStackTrace();
            } 
    catch (IOException e) {
                e.printStackTrace();
            }
        }
        
    }
        效果圖:

            注:如需運行代碼,添加Student.xml到你的src目錄下即可
            點我下載demo
    posted on 2010-08-03 08:24 雪山飛鵠 閱讀(1983) 評論(0)  編輯  收藏 所屬分類: javase
    主站蜘蛛池模板: 亚洲精品国产字幕久久不卡| 久久久受www免费人成| 午夜亚洲国产理论秋霞| 九九视频高清视频免费观看| 亚洲国产品综合人成综合网站| 亚洲日韩av无码| 国产jizzjizz视频全部免费| 性生交片免费无码看人| 一个人免费日韩不卡视频| 国产精品免费视频观看拍拍| 亚洲AV无码一区二区三区网址| 亚洲一欧洲中文字幕在线| 色拍自拍亚洲综合图区| 久久国产亚洲精品麻豆| 久久精品国产精品亚洲人人| 四虎影在线永久免费四虎地址8848aa | 国产午夜亚洲精品| 在线电影你懂的亚洲| 亚洲av日韩av无码| 久久久青草青青亚洲国产免观| 国产精品亚洲产品一区二区三区 | 久久久久久久久亚洲| 亚洲午夜久久久久妓女影院| 亚洲精品国产V片在线观看| 四虎免费久久影院| 免费人成在线观看播放国产 | 亚洲第一成人影院| 亚洲国产成人精品久久久国产成人一区二区三区综 | 毛片视频免费观看| 欧洲黑大粗无码免费| 精品久久久久国产免费| 我要看WWW免费看插插视频| 一个人看的www在线观看免费| 69xx免费观看视频| 欧洲乱码伦视频免费| 日本亚洲免费无线码| 啦啦啦中文在线观看电视剧免费版 | 亚洲AV无码一区二三区| 狠狠色婷婷狠狠狠亚洲综合| 国产亚洲大尺度无码无码专线| 亚洲色成人WWW永久网站|