<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人片在线观看中文!!!| 亚洲欧洲无码AV电影在线观看 | 久久久久精品国产亚洲AV无码| 日韩精品无码专区免费播放| 夜夜亚洲天天久久| 99精品视频在线免费观看| 亚洲视频在线视频| 亚洲毛片在线免费观看| 亚洲av片不卡无码久久| 99久久免费精品国产72精品九九 | 婷婷国产偷v国产偷v亚洲| 免费黄网在线观看| 特级一级毛片免费看| 国产亚洲情侣一区二区无| 男人的天堂网免费网站| 亚洲欧洲视频在线观看| 免费观看男人免费桶女人视频| 天天综合亚洲色在线精品| 国产AV无码专区亚洲AV漫画| 日本不卡免费新一区二区三区| 色婷婷亚洲十月十月色天| 成人a免费α片在线视频网站| 亚洲国产av玩弄放荡人妇 | 免费v片视频在线观看视频| 久久一区二区免费播放| 亚洲高清在线播放| 成人最新午夜免费视频| 无码人妻一区二区三区免费视频 | 69免费视频大片| 国产青草亚洲香蕉精品久久| 国产亚洲精品高清在线| 亚洲电影免费观看| 中美日韩在线网免费毛片视频| 亚洲国产高清人在线| 看全色黄大色大片免费久久| 最近免费mv在线观看动漫| 77777午夜亚洲| 亚洲开心婷婷中文字幕| 国产精品美女午夜爽爽爽免费| 国产成人无码免费看片软件| 亚洲人成777在线播放|