<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲高清无码在线观看| 在线A级毛片无码免费真人| 亚洲色精品vr一区二区三区| 理论片在线观看免费| 亚洲电影日韩精品 | 特级aa**毛片免费观看| 亚洲第一区精品观看| 国产精品综合专区中文字幕免费播放| 亚洲AV成人精品日韩一区18p| 国产精品亚洲专区一区| 免费人成网站在线高清| 久久这里只精品国产免费10| 久久亚洲精品视频| 88av免费观看| 97se亚洲国产综合自在线 | 亚洲Av无码乱码在线播放| 又粗又长又爽又长黄免费视频 | 91情国产l精品国产亚洲区 | 日韩亚洲不卡在线视频中文字幕在线观看| 国产精品久久久久免费a∨| 亚洲综合色一区二区三区| 国产男女猛烈无遮挡免费视频| 污污免费在线观看| 亚洲s色大片在线观看| 最近中文字幕mv免费高清在线 | 中文字幕在线观看免费视频| 亚洲最新黄色网址| 国产精品酒店视频免费看| 东北美女野外bbwbbw免费| 亚洲视频在线观看视频| 欧洲精品免费一区二区三区| v片免费在线观看| 亚洲福利一区二区三区| 免费在线一级毛片| 在线成人爽a毛片免费软件| 国产AV无码专区亚洲AV麻豆丫| 亚洲精品午夜无码电影网| 一二三四免费观看在线电影 | 国产精品偷伦视频观看免费| 亚洲日韩看片无码电影| 中文字幕亚洲一区二区三区|