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

          雪山飛鵠

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

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
          xml
          <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
          <data>
              
          <student id="1">
                  
          <name>student0</name>
                  
          <age>10</age>
                  
          <sex></sex>
                  
          <address>陜西西安</address>
              
          </student>
              
          <student id="2">
                  
          <name>student1</name>
                  
          <age>11</age>
                  
          <sex></sex>
                  
          <address>陜西西安</address>
              
          </student>
              
          <student id="3">
                  
          <name>student2</name>
                  
          <age>12</age>
                  
          <sex></sex>
                  
          <address>陜西西安</address>
              
          </student>
              
          <student id="4">
                  
          <name>student3</name>
                  
          <age>13</age>
                  
          <sex></sex>
                  
          <address>陜西西安</address>
              
          </student>
              
          <student id="5">
                  
          <name>student4</name>
                  
          <age>14</age>
                  
          <sex></sex>
                  
          <address>陜西西安</address>
              
          </student>
              
          <student id="6">
                  
          <name>student5</name>
                  
          <age>15</age>
                  
          <sex></sex>
                  
          <address>陜西西安</address>
              
          </student>
              
          <student id="7">
                  
          <name>student6</name>
                  
          <age>16</age>
                  
          <sex></sex>
                  
          <address>陜西西安</address>
              
          </student>
              
          <student id="8">
                  
          <name>student7</name>
                  
          <age>17</age>
                  
          <sex></sex>
                  
          <address>陜西西安</address>
              
          </student>
              
          <student id="9">
                  
          <name>student8</name>
                  
          <age>18</age>
                  
          <sex></sex>
                  
          <address>陜西西安</address>
              
          </student>
              
          <student id="10">
                  
          <name>student9</name>
                  
          <age>19</age>
                  
          <sex></sex>
                  
          <address>陜西西安</address>
              
          </student>
          </data>
          handler
          package com.sax;

          import java.util.ArrayList;
          import java.util.List;

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

          import com.xmlpull.Student;

          public class StudentHandler extends DefaultHandler {
              
              
          private Student student=null;
              
          private String tag;
              
          private List<Student> list=null;
              
              
              
          public List<Student> getList() {
                  
          return list;
              }

              
          public void setList(List<Student> list) {
                  
          this.list = list;
              }
              
              
              
              @Override
              
          public void characters(char[] ch, int start, int length)
                      
          throws SAXException {
                  String data
          =new String(ch,start,length);
                  
          if(null!=tag){
                      
          if("name".equalsIgnoreCase(tag)){
                          student.setName(data);
                      }
          else if("age".equalsIgnoreCase(tag)){
                          student.setAge(data);
                      }
          else if("sex".equalsIgnoreCase(tag)){
                          student.setSex(data);
                      }
          else if("address".equalsIgnoreCase(tag)){
                          student.setAddress(data);
                      }
                  }
              }

              @Override
              
          public void endDocument() throws SAXException {
                  
              }

              @Override
              
          public void endElement(String uri, String localName, String name)
                      
          throws SAXException {
                  
          if("student".equalsIgnoreCase(name)){
                      list.add(student);
                      student
          =null;
                  }
                  tag
          =null;
              }

              @Override
              
          public void startDocument() throws SAXException {
                  list
          =new ArrayList<Student>();
              }

              @Override
              
          public void startElement(String uri, String localName, String name,
                      Attributes attributes) 
          throws SAXException {
                  
          if("student".equals(name)){
                      student
          =new Student();
                      
          if(attributes!=null){
                          student.setId(Integer.parseInt(attributes.getValue(
          0)));
                      }
                  }
                  tag
          =name;
              }
              
              
              
          }
          SaxXmlParse
          package com.sax;

          import java.io.File;
          import java.util.List;

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

          import com.xmlpull.Student;

          /**
           * <pre>
           * sax解析xml
           * </pre>
           * 
          @author scott
           *
           
          */
          public class SaxXmlParse{
              
              
          public List<Student> parseXML() throws Exception{
                  SAXParserFactory parserFactory
          =SAXParserFactory.newInstance();
                  SAXParser parser 
          = parserFactory.newSAXParser();
                  
          //XMLReader reader=parser.getXMLReader();
                  StudentHandler studentHandler=new StudentHandler();
                  
          //reader.setContentHandler(studentHandler);
                  
          //reader.parse(new InputSource(new FileInputStream(new File("D:\\workspace\\demo\\src\\students.xml"))));
                  parser.parse(new File("D:\\workspace\\demo\\src\\students.xml"), studentHandler);
                  
          return studentHandler.getList();
              }
              
              
              
          public static void main(String[] args) throws Exception{
                  List
          <Student> list=new SaxXmlParse().parseXML();
                  
          for (Student stu : list) {
                      System.out.println(stu.getId()
          +"\t"+stu.getName()+"\t"+stu.getSex()+"\t"+stu.getAge()+"\t"+stu.getAddress());
                  }
              }
              
              
              
              
              
          }
          效果圖
          1 student0 女 10 陜西西安
          2 student1 男 11 陜西西安
          3 student2 女 12 陜西西安
          4 student3 男 13 陜西西安
          5 student4 女 14 陜西西安
          6 student5 男 15 陜西西安
          7 student6 女 16 陜西西安
          8 student7 男 17 陜西西安
          9 student8 女 18 陜西西安
          10 student9 男 19 陜西西安



          posted on 2011-08-24 11:36 雪山飛鵠 閱讀(1426) 評論(0)  編輯  收藏 所屬分類: javaseandroid
          主站蜘蛛池模板: 华蓥市| 托里县| 江川县| 陆丰市| 京山县| 济源市| 清丰县| 合肥市| 资中县| 东平县| 本溪市| 巫山县| 基隆市| 都昌县| 应城市| 安吉县| 房山区| 定边县| 大竹县| 冷水江市| 南投市| 汉中市| 黄龙县| 星子县| 闸北区| 南郑县| 德安县| 敦煌市| 洞口县| 长治市| 桂平市| 樟树市| 同德县| 金门县| 延安市| 黔东| 靖江市| 桓台县| 阳信县| 枞阳县| 南康市|