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

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


    網站導航:
     
    主站蜘蛛池模板: 国产成人亚洲影院在线观看| 国产精品久久免费视频| 亚洲狠狠婷婷综合久久久久| 亚美影视免费在线观看| 国产亚洲精品无码拍拍拍色欲 | 一二三区免费视频| www亚洲精品少妇裸乳一区二区| 久久精品国产亚洲AV天海翼| 亚洲成av人片天堂网老年人| 久久久久久久久久免免费精品| 国精无码欧精品亚洲一区| 国产好大好硬好爽免费不卡| 亚洲午夜精品久久久久久人妖| 国产高清免费视频| 亚洲av永久中文无码精品综合 | 亚洲日韩v无码中文字幕| 你是我的城池营垒免费观看完整版| 亚洲处破女AV日韩精品| 免费h片在线观看网址最新| 亚洲天然素人无码专区| 免费人成无码大片在线观看| 好男人资源在线WWW免费| 少妇中文字幕乱码亚洲影视| 亚洲国产精品免费观看| 国产成人综合亚洲| 亚洲精品无码精品mV在线观看| 222www在线观看免费| 亚洲av日韩aⅴ无码色老头| 亚洲一级特黄大片无码毛片| 很黄很污的网站免费| 亚洲五月丁香综合视频| 亚洲精品国精品久久99热| 亚洲免费精彩视频在线观看| 亚洲欧美日韩国产成人| 亚洲人成图片小说网站| 人妻视频一区二区三区免费| xxxxx做受大片在线观看免费| 亚洲人成电影青青在线播放| 亚洲视频人成在线播放| 91精品国产免费久久久久久青草 | 亚洲国产精品综合久久一线|