<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 天外飛仙 閱讀(459) 評論(0)  編輯  收藏 所屬分類: XML
    主站蜘蛛池模板: 久久久免费观成人影院| 亚洲黄色在线观看| 无遮挡免费一区二区三区| 成人免费视频软件网站| 亚洲午夜精品在线| 波多野结衣免费在线| 亚洲乱码一二三四区乱码| 亚洲欧洲免费无码| 亚洲精品无码不卡在线播放| 卡一卡二卡三在线入口免费| 久久精品国产亚洲AV天海翼| 又爽又高潮的BB视频免费看| 人妻免费久久久久久久了| 在线精品亚洲一区二区三区| 久久青草免费91观看| 亚洲日韩在线视频| 成年女人视频网站免费m| 国产成人高清亚洲一区91| 久久国产成人亚洲精品影院| 久久99热精品免费观看牛牛| 亚洲ts人妖网站| 可以免费观看的一级毛片| 人妻在线日韩免费视频| 亚洲高清免费在线观看| 浮力影院第一页小视频国产在线观看免费| 亚洲av中文无码字幕色不卡 | 91免费资源网站入口| 日本亚洲欧美色视频在线播放| 亚洲成AⅤ人影院在线观看| 国产在线精品免费aaa片| 亚洲人成影院午夜网站| 亚洲国产成人久久综合一区77| 精品国产免费一区二区三区香蕉| 亚洲国产av美女网站| 免费在线观看一级毛片| 久久w5ww成w人免费| 国产亚洲综合视频| 亚洲一区二区成人| 免费jjzz在在线播放国产| 88av免费观看| 美女被免费网站在线视频免费 |