<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
    主站蜘蛛池模板: 亚洲天堂2016| 亚洲第一永久在线观看| 色欲色欲天天天www亚洲伊| 成年女人视频网站免费m| 亚洲国产综合在线| 中文字幕无码免费久久99| 亚洲jjzzjjzz在线播放| 成熟女人牲交片免费观看视频| 久久久久亚洲国产| 全免费a级毛片免费看不卡| 色九月亚洲综合网| 亚洲一级特黄大片无码毛片| 一个人看的www视频免费在线观看| 浮力影院亚洲国产第一页| 精品视频在线免费观看| 亚洲第一成年人网站| 女人张开腿等男人桶免费视频| 亚洲AV无码XXX麻豆艾秋| 亚洲а∨天堂久久精品| 成在人线av无码免费高潮喷水| 亚洲久本草在线中文字幕| 美女被免费喷白浆视频 | 亚洲成AV人片在线观看无码| 久久久精品午夜免费不卡| 色拍自拍亚洲综合图区| 成人午夜免费福利| 国产精品免费看久久久香蕉| 久久国产精品亚洲一区二区| 真人做A免费观看| 阿v免费在线观看| 亚洲高清国产拍精品26U| 中文字幕无码视频手机免费看| 暖暖免费中文在线日本| 亚洲爱情岛论坛永久| 日韩免费视频观看| 暖暖在线视频免费视频| 亚洲乱亚洲乱妇无码| 国产V亚洲V天堂无码| 最近最好的中文字幕2019免费| jzzjzz免费观看大片免费| 亚洲天堂一区二区三区|