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

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

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

    飛艷小屋

    程序--人生--哲學___________________歡迎艷兒的加入

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks

    XML文檔樣本:


    <?xml version="1.0"?>
    <simple date="7/7/2000" >
    <name> Bob </name>
    <location> New York </location>
    </simple>


    代碼:
    package xmltest;
    import javax.xml.parsers.*;
    import org.xml.sax.*;
    import org.xml.sax.helpers.*;
    import java.io.*;

    ?


    public class SaxTest 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 {

    // SAXParserFactory spFactory = SAXParserFactory.newInstance();
    // SAXParser sParser = spFactory.newSAXParser();


    // 建立SAX 2解析器...
    XMLReader xr = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");

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

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


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

    }

    }
    ?當前SAX API有兩個版本。第二版中的類名和方法名與第一版都有出入,但是代碼的結構是一樣的。
    ??? SAX是一套API,它不是一個解析器,所以這個代碼在XML解析器中是通用的。要讓示例跑起來,你將需要一個支持SAX v2的XML解析器。我用Apache的Xerces解析器.代碼如下
    // 建立SAX 2解析器...
    XMLReader xr = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");

    // 安裝ContentHandler...
    xr.setContentHandler( new SaxTest() );
    SAX API 的說明書通俗易讀。它包含了很多的詳細內容。而使用SAX API的主要任務就是創建一個實現ContentHandler接口,一個供XML 解析器調用以將分析XML文檔時所發生的SAX事件分發給處理程序的回調接口。

    方便起見,SAX API也提供了一個已經實現了ContentHandler接口的DefaultHandler適配器類。

    一但實現了ContentHandler或者擴展了DefaultHandler類,你只需直接將XML解析器解析一個特定的文檔即可。

    我們的第一個例子擴展DefaultHandler將每個SAX事件打印到控制臺。這將給你一個初步的映象,以說明什么SAX事件將會發生及以怎樣的順序發生。

    posted on 2006-08-16 13:29 天外飛仙 閱讀(460) 評論(0)  編輯  收藏 所屬分類: XML
    主站蜘蛛池模板: 亚洲国产成人私人影院| 一级**爱片免费视频| 亚洲日韩欧洲无码av夜夜摸| 最近高清国语中文在线观看免费| 一级特黄录像免费播放肥| 亚洲国产视频久久| 亚洲国产精品久久久天堂| 亚洲AV成人潮喷综合网| 无码专区永久免费AV网站| 七色永久性tv网站免费看| 一级片在线免费看| 亚洲hairy多毛pics大全| 亚洲国产成人久久99精品| 亚洲av无码成h人动漫无遮挡 | 亚洲区视频在线观看| 亚洲精品国产精品乱码视色 | 亚洲av无码一区二区三区观看| 亚洲国产精品乱码一区二区| 亚洲欧洲日产国码高潮αv| 国产精品视_精品国产免费| 两性刺激生活片免费视频| 24小时日本韩国高清免费| 免费无码又爽又刺激高潮软件| 一个人免费播放在线视频看片| 婷婷国产偷v国产偷v亚洲| 亚洲熟妇AV一区二区三区宅男| 亚洲成人午夜电影| 亚洲韩国在线一卡二卡| 亚洲国产成人久久综合碰碰动漫3d| 精品亚洲一区二区| 国产亚洲精品a在线观看app | 久久精品成人免费观看97| 免费很黄无遮挡的视频毛片| 亚洲国产精品18久久久久久| 亚洲精品久久久久无码AV片软件| 亚洲一线产品二线产品| 亚洲国产精品免费观看 | 久久亚洲免费视频| 青青青国产手机频在线免费观看| 野花香在线视频免费观看大全| a毛看片免费观看视频|