隨筆 - 154  文章 - 60  trackbacks - 0
          <2007年11月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          聲明:

          該blog是為了收集資料,認識朋友,學習、提高技術,所以本blog的內容除非聲明,否則一律為轉載!!

          感謝那些公開自己技術成果的高人們!!!

          支持開源,尊重他人的勞動!!

          常用鏈接

          留言簿(3)

          隨筆分類(148)

          隨筆檔案(143)

          收藏夾(2)

          其他

          學習(技術)

          觀察思考(非技術)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          雖然有些方法沒用,但還是保留了下來!String  str是我加的

          代碼:
          import org.xml.sax.Attributes;
          import org.xml.sax.SAXException;
          import org.xml.sax.Locator;
          import org.xml.sax.ContentHandler;
          import org.xml.sax.InputSource;
          import org.xml.sax.helpers.DefaultHandler;
          import java.io.IOException;
          import javax.xml.parsers.SAXParser;
          import javax.xml.parsers.SAXParserFactory;


          class TestSAX extends DefaultHandler{
              
              
          private StringBuffer buf;
              
          private String str;
              
          public TestSAX(){
                  
          super(); 
              }

              
          //    public void setDocumentLocator(Locator locator){}
              
              
          public void startDocument() throws SAXException{
                  buf
          =new StringBuffer();
                  System.out.println(
          "*******開始解析文檔*******");
              }

              
              
          public void endDocument() throws SAXException{        
                  System.out.println(
          "*******文檔解析結束*******");
              }

              
              
          public void startPrefixMapping( String prefix, String uri ){
                  System.out.println(
          " 前綴映射: " + prefix +" 開始!"+ " 它的URI是:" + uri);
              }

              
              
          public void endPrefixMapping( String prefix ){
                  System.out.println(
          " 前綴映射: "+prefix+" 結束!");
              }

              
          //    public void processingInstruction( String target, String instruction )throws SAXException{}
              
          //    public void ignorableWhitespace( char[] chars, int start, int length ) throws SAXException {}
              
          //    public void skippedEntity( String name ) throws SAXException {}
              
              
          public void startElement(String namespaceURI,String localName,String qName,Attributes atts){
                  System.out.println(
          "*******開始解析元素*******");    
                  System.out.println(
          "元素名"+qName);        
                  
          for(int i=0;i<atts.getLength();i++){
                      System.out.println(
          "元素名"+atts.getLocalName(i)+"屬性值"+atts.getValue(i));
                  }

              }

              
              
          public void endElement(String namespaceURI,String localName,String fullName )throws SAXException{
          //        buf.trimToSize();
                  str = buf.toString(); 
                  System.out.println(
          "buf = "+buf+" || length = "+buf.length());
                  System.out.println(
          "str = "+str.trim()+" || length = "+str.trim().length());
                  buf.delete(
          0,buf.length());
                  System.out.println(
          "******"+namespaceURI+"元素解析結束"+localName+"********"+fullName);
              }

              
              
          public void characters( char[] chars, int start, int length )throws SAXException{
                  
          //將元素內容累加到StringBuffer中 
                  buf.append(chars,start,length);
              }

              
              
          public static void main(String args[]){
                  
          try{
                      SAXParserFactory sf 
          = SAXParserFactory.newInstance();
                      SAXParser sp 
          = sf.newSAXParser();
                      TestSAX testsax
          =new TestSAX();
                      sp.parse(
          new InputSource("test1.xml"),testsax);
                  }
          catch(IOException e){
                      e.printStackTrace(); 
                  }
          catch(SAXException e){
                      e.printStackTrace(); 
                  }
          catch(Exception e){
                      e.printStackTrace(); 
                  }

              }

          }

          xml文件,我讀的時候有錯誤,用了自己的,希望其他人比我幸運!
          代碼:
          <?xml version="1.0" encoding="GB2312"?>
          <row>
          <person>
          <name>王小明</name>
          <college>信息學院</college> 
          <telephone>6258113</telephone>
          <notes>男,1955年生,博士,95年調入海南大學</notes>
          </person>
          </row> 
          posted on 2007-11-22 10:44 lk 閱讀(9156) 評論(2)  編輯  收藏 所屬分類: j2sexml

          FeedBack:
          # re: java sax 解析 xml 2008-12-14 11:12 咕嘎
          確實出現了一些問題,例子還是不錯的  回復  更多評論
            
          # re: java sax 解析 xml 2008-12-24 01:43 路過
          </row> 這里后面多了一個空格也會報錯的  回復  更多評論
            
          # re: java sax 解析 xml 2009-08-21 19:19 王大帥
          <?xml version="1.0" encoding="GB2312"?>
          <row>
          <person>
          <name>王小明</name>
          <college>信息學院</college>
          <telephone>6258113</telephone>
          <notes>男,1955年生,博士,95年調入海南大學</notes>
          </person>
          </row> 
          這個XML是不對的,不符合XML語法,改成這樣就可以了
          <?xml version="1.0" encoding="GB2312"?>

          <person>
          <name>王小明</name>
          <college>信息學院</college>
          <telephone>6258113</telephone>
          <notes>男,1955年生,博士,95年調入海南大學</notes>
          </person>
            回復  更多評論
            
          主站蜘蛛池模板: 太和县| 宜君县| 麻栗坡县| 江川县| 阿克| 阜平县| 龙泉市| 安阳县| 荔浦县| 思南县| 罗田县| 孟州市| 新干县| 太原市| 军事| 通海县| 德清县| 紫阳县| 五寨县| 鹿邑县| 灵武市| 抚州市| 甘孜| 本溪市| 丰顺县| 桃园县| 吴桥县| 浠水县| 茂名市| 靖州| 临朐县| 南城县| 文登市| 郴州市| 漳平市| 定陶县| 富阳市| 图木舒克市| 平舆县| 星座| 旬阳县|