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

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

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

    隨筆 - 6  文章 - 129  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(14)

    隨筆檔案(6)

    文章分類(467)

    文章檔案(423)

    相冊

    收藏夾(18)

    JAVA

    搜索

    •  

    積分與排名

    • 積分 - 825681
    • 排名 - 49

    最新評論

    閱讀排行榜

    評論排行榜


    1. SAX ( Simple Application interface for XML ), 是一組程序設(shè)計接口,采用 observer 模式,將XML文件視為一個文字流的數(shù)據(jù),在讀取XML 元素時觸發(fā)一系列的事件

    2. 使用DOM 時是將xml 文件解析為一個樹狀結(jié)構(gòu),并對樹中的節(jié)點進行操作
    使用SAX 加載XML文件時,他的操作像打開一個“順序的文件字符流”,在讀到XML元素的開始標記,結(jié)尾標記和內(nèi)容標記時將產(chǎn)生一系列的事件
    如一個簡單的XML文件:<hello><message>hello XML!</message></hello>
    會相應(yīng)的觸發(fā):startDocument, startElement, characters, endElement, endDocument, 只需編寫這些事件處理程序就可以解析XML文件了

    3. SAX 可以高效的使用內(nèi)存,因為SAX 只是順序的讀取XML 文件的內(nèi)容,并不會將XML 文件完全加載,這樣就比DOM 的處理效率高
    但SAX 只能讀取XML 文件的內(nèi)容,而不能更改XML 的內(nèi)容,也不能隨機訪問XML 元素

    4. 在SAX 中有4個處理器是要實現(xiàn)的:ContentHandler,DTDHandler,EntityResolver,ErrorHandler,以處理不同的事件,這是比較麻煩的,
    幸好SAX 定義了一個 DefaultHandler 類把這幾個實現(xiàn)了,我們只需在 DefaultHandler中定義事件處理方法,然后注冊到XMLReader,而SAXParser封裝了XMLReader的實現(xiàn)類,
    SAXParser又是由SAXParserFactory提供的,所以我們實際用到的類只有:SAXParserFactory,SAXParser,DefaultHandler

    5. SAX 的解析步驟:
    (1)寫一個類繼承 DefaultHandler, 實現(xiàn)自己的事件處理方法
    (2)在主程序中建立 SAXParserFactory
    (3)可以設(shè)置這個factory 的參數(shù)
    (4)從這個factory 得到SAXParser
    (5)解析XML文件

    例子:

    XML 文件:hr.xml
    <?xml version="1.0" encoding="GB2312" ?>
    <!-- 個人履歷表-->
    <resume>
    <person id="01">
    <name>張三</name>
    <birthday>03/24/1975</birthday>
    <phone>1111-1111</phone>
    <address>大連</address>
    </person>
    <person id="02">
    <name>李四</name>
    <birthday>9/26/1978</birthday>
    <phone>2222-2222</phone>
    <address>南京</address>
    </person>
    <person id="03">
    <name>王五</name>
    <birthday>11/09/1979</birthday>
    <phone>3333-3333</phone>
    <address>武漢</address>
    </person>
    </resume>


    import javax.xml.parsers.*;
    import org.xml.sax.*;
    import org.xml.sax.helpers.*;

    public class MySaxParser extends DefaultHandler {
    public static void main( String[] args ){
    try{
    // 創(chuàng)建一個handler
    DefaultHandler dh = new MySaxParser();
    // 創(chuàng)建SAXParserFactory
    SAXParserFactory spf = SAXParserFactory.newInstance();
    // 從factory 中得到SAXParser
    SAXParser sp = spf.newSAXParser();
    // 用自定義的handler 解析xml
    sp.parse( "08_02.xml", dh );
    }catch( Exception e ){
    e.printStackTrace();
    }
    }
    public void startDocument(){

    }
    /**
    * 當(dāng)開始一個元素時打印出元素名和此元素的所有屬性
    */
    public void startElement(String uri,
    String localName,
    String qName,
    Attributes attributes)
    {
    System.out.print( qName + ":" );
    int len = 0;
    len = attributes.getLength();
    if( len > 0 ){
    System.out.print( "\t" + "attributes: " );
    for( int i=0; i<len; i++ )
    System.out.print( attributes.getQName(i) + "=" + attributes.getValue(i) + "\t" );
    //System.out.println();
    }
    }
    /**
    * 打印出元素內(nèi)容
    */
    public void characters(char[] ch,
    int start,
    int length)
    {
    String s = String.valueOf( ch, start, length );
    System.out.print( s );
    }
    public void endElement(String uri,
    String localName,
    String qName)
    {

    }
    public void endDocument(){

    }
    }


    posted on 2010-11-25 20:47 Ke 閱讀(261) 評論(0)  編輯  收藏 所屬分類: xml

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 日韩精品无码永久免费网站| 久久久久免费看成人影片| 亚洲欭美日韩颜射在线二| 久久精品一本到99热免费| 亚洲免费综合色在线视频| 亚洲精品成人无限看| 噼里啪啦免费观看高清动漫4| 男女超爽视频免费播放| 无码专区—VA亚洲V天堂| 日本黄色免费观看| 一个人免费视频在线观看www | 国产91久久久久久久免费| 东方aⅴ免费观看久久av| 亚洲色中文字幕在线播放| 日韩亚洲欧洲在线com91tv| 麻豆国产入口在线观看免费| 久久狠狠躁免费观看2020| 国产精品亚洲一区二区三区久久| 亚洲人成电影在在线观看网色| 国产一级高清视频免费看| aⅴ免费在线观看| 三上悠亚在线观看免费| 亚洲AV无码一区二区三区久久精品| 亚洲VA成无码人在线观看天堂| 日韩免费高清视频网站| 色影音免费色资源| 日本一区二区免费看| 菠萝菠萝蜜在线免费视频| 亚洲日本人成中文字幕| 亚洲精品在线观看视频| 精品国产人成亚洲区| 国产又大又黑又粗免费视频| 99久久久国产精品免费无卡顿 | 黄色网址免费在线观看| 亚洲av无码av在线播放| 中中文字幕亚洲无线码| 亚洲精品视频久久| 国产成人亚洲综合色影视| 亚洲国产一区明星换脸| 国产裸模视频免费区无码| 久久久久久国产a免费观看黄色大片 |