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

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

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

    posts - 28,comments - 3,trackbacks - 0
    Simple API for XML
    SAX是一套API,不是一個解析器,所以這個代碼在XML解析器中是通用的。要讓示例跑起來,需要一個支持SAX v2的XML解析器。實現了SAX的解析器有很多,比如Apache的Xerces,Oracle的XML Parser等等。
    解析時需實現ContentHandler或者擴展DefaultHandler類,將XML解析器解析一個特定的文檔即可。


    示例:
    xml文件
    <?xml version="1.0"?>
    <simple date="7/7/2000" >
       <name> Bob </name>
       <location> New York </location>
    </simple>

    接下來,我們看看第一個XML解析例子的代碼:


    import org.xml.sax.*;
    import org.xml.sax.helpers.*;
    import java.io.*;


    public class Example1 extends DefaultHandler {


       // 重載DefaultHandler類的方法
       // 以攔截SAX事件通知。
       //
            // 關于所有有效事件,見org.xml.sax.ContentHandler
       //
       public void startDocument( ) throws SAXException {
          System.out.println( "SAX Event: START DOCUMENT" );
       }

       public void endDocument( ) throws SAXException {
          System.out.println( "SAX Event: END DOCUMENT" );
       }

       public void startElement( String namespaceURI,
                  String localName,
                  String qName,
                  Attributes attr ) throws SAXException {
             System.out.println( "SAX Event: START ELEMENT[ " +
                      localName + " ]" );

          // 如果有屬性,我們也一并打印出來...
                    for ( int i = 0; i < attr.getLength(); i++ ){
                       System.out.println( "   ATTRIBUTE: " +
                      attr.getLocalName(i) +
                      " VALUE: " +
                      attr.getValue(i) );
          }

       }

       public void endElement( String namespaceURI,
                  String localName,
                  String qName ) throws SAXException {
          System.out.println( "SAX Event: END ELEMENT[ " +
                      localName + " ]" );
       }

       public void characters( char[] ch, int start, int length )
                      throws SAXException {

          System.out.print( "SAX Event: CHARACTERS[ " ];

          try {
             OutputStreamWriter outw = new OutputStreamWriter(System.out);
             outw.write( ch, start,length );
             outw.flush();
          } catch (Exception e) {
             e.printStackTrace();
          }

          System.out.println( " )" );

       }


       public static void main( String[] argv ){

          System.out.println( "Example1 SAX Events:" );
          try {

             // 建立SAX 2解析器...
             XMLReader xr = XMLReaderFactory.createXMLReader();

             // 安裝ContentHandler...
             xr.setContentHandler( new Example1() );

                // 解析文件...
             xr.parse( new InputSource(
                   new FileReader( "Example1.xml" )) );


          }catch ( Exception e )  {
             e.printStackTrace();
          }

       }

    }

    最后,就得到了運行第一個例子解析我們的XML樣本文檔所產生的輸出:


    Example1 SAX Events:
    SAX Event: START DOCUMENT
    SAX Event: START ELEMENT[ simple ]
       ATTRIBUTE: date VALUE: 7/7/2000
    SAX Event: CHARACTERS[
        ]
    SAX Event: START ELEMENT[ name ]
    SAX Event: CHARACTERS[  Bob  ]
    SAX Event: END ELEMENT[ name ]
    SAX Event: CHARACTERS[
        ]
    SAX Event: START ELEMENT[ location ]
    SAX Event: CHARACTERS[  New York  ]
    SAX Event: END ELEMENT[ location ]
    SAX Event: CHARACTERS[
    ]
    SAX Event: END ELEMENT[ simple ]
    SAX Event: END DOCUMENT

    如你所見,SAX解析器會為每個在XML文檔中出現的SAX事件調用正確的ContentHandler成員方法。

    posted on 2007-05-31 16:20 李大嘴 閱讀(421) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 成在人线AV无码免费| 无码专区AAAAAA免费视频| 日韩免费一级毛片| 亚洲av永久无码嘿嘿嘿| 国产成人无码免费看视频软件 | 免费中文字幕视频| 亚洲AV无码乱码精品国产| 国产AV日韩A∨亚洲AV电影| mm1313亚洲精品无码又大又粗| 美女无遮挡免费视频网站| 亚洲av麻豆aⅴ无码电影| kk4kk免费视频毛片| 亚洲高清国产AV拍精品青青草原| 免费观看在线禁片| 亚洲视频一区二区三区| 免费无码肉片在线观看| 久久久久亚洲国产AV麻豆| 亚洲综合久久夜AV | 高清一区二区三区免费视频| 亚洲高清视频免费| 搡女人真爽免费视频大全| 精品国产日韩亚洲一区91| 亚洲精品中文字幕乱码三区| 18观看免费永久视频| 亚洲三级在线观看| 日韩亚洲精品福利| 久久国产精品免费网站| 亚洲va久久久久| 免费人成在线观看视频播放| 最近免费字幕中文大全| 亚洲第一区视频在线观看| 日本免费一区二区三区最新vr| eeuss免费天堂影院| 亚洲成人午夜电影| 亚洲av无码成人精品区| 久久精品电影免费动漫| 亚洲国产精品成人午夜在线观看| 国产亚洲精午夜久久久久久| 精品福利一区二区三区免费视频 | 亚洲国产电影在线观看| 免费国内精品久久久久影院|