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

          聲明:

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

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

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

          常用鏈接

          留言簿(3)

          隨筆分類(148)

          隨筆檔案(143)

          收藏夾(2)

          其他

          學習(技術(shù))

          觀察思考(非技術(shù))

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          雖然有些方法沒用,但還是保留了下來!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(
          "*******文檔解析結(jié)束*******");
              }

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

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

              
          //    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+"元素解析結(jié)束"+localName+"********"+fullName);
              }

              
              
          public void characters( char[] chars, int start, int length )throws SAXException{
                  
          //將元素內(nèi)容累加到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年調(diào)入海南大學</notes>
          </person>
          </row> 
          posted on 2007-11-22 10:44 lk 閱讀(9156) 評論(2)  編輯  收藏 所屬分類: j2sexml

          FeedBack:
          # re: java sax 解析 xml 2008-12-14 11:12 咕嘎
          確實出現(xiàn)了一些問題,例子還是不錯的  回復  更多評論
            
          # 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年調(diào)入海南大學</notes>
          </person>
          </row> 
          這個XML是不對的,不符合XML語法,改成這樣就可以了
          <?xml version="1.0" encoding="GB2312"?>

          <person>
          <name>王小明</name>
          <college>信息學院</college>
          <telephone>6258113</telephone>
          <notes>男,1955年生,博士,95年調(diào)入海南大學</notes>
          </person>
            回復  更多評論
            
          主站蜘蛛池模板: 团风县| 丹阳市| 孟州市| 临安市| 泗水县| 广元市| 博罗县| 宁阳县| 峡江县| 闻喜县| 营口市| 广元市| 萍乡市| 宜良县| 南阳市| 商洛市| 鄱阳县| 高陵县| 建平县| 惠州市| 长顺县| 马公市| 曲沃县| 淮阳县| 东兴市| 思茅市| 大足县| 康定县| 河池市| 南江县| 东兴市| 永修县| 芜湖县| 新干县| 和林格尔县| 咸阳市| 威海市| 寿阳县| 达孜县| 莱芜市| 临汾市|