3.xml中Sax解析實(shí)例

1.Sax解析原理
SAX解析: 優(yōu)勢:內(nèi)存占用非常小抛猫。加載一點(diǎn)卖宠,解析一點(diǎn),處理一點(diǎn)二打,接著釋放內(nèi)存。
2.Sax解析的功能
SAXParser類: 解析器對象(類似于dom4j SAXReader)
        |- parse(File f, DefaultHandler dh): 方法掂榔。用于解析xml文件

    File: 指定讀取的xml文件

    DefaultHandler: 事件處理程序的默認(rèn)基類继效。

    DefaultHandler類:

 startDocument() : 開始文檔時觸發(fā)的方法
 startElement(String uri, String localName, String qName, Attributes attributes) 遇到開始標(biāo)簽觸發(fā)的方法
 characters(char[] ch, int start, int length)  遇到文本內(nèi)容觸發(fā)的方法
 endElement(String uri, String localName, String qName)  遇到結(jié)束標(biāo)簽
 endDocument() 結(jié)束文檔時觸發(fā)的方法
3.Sax解析xml的步驟
public static void main(String[] args) throws  Exception {
//基于SAX解析讀取xml文件
//創(chuàng)建解析的對象
SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
 //2.調(diào)用parse方法,讀取和解析xml文件
 /**
     * 參數(shù)一: 指定的文件地址
 */
File file = new File("contact.xml");
/**
   * 參數(shù)二: 指定DefaultHandler的子類
*/
saxParser.parse(file,new MyDefaultHander());
    }

MyDefaultHander 繼承 DefaultHandler

public class MyDefaultHander extends DefaultHandler {

    //遇到文檔就開始解析

    @Override
    public void startDocument() throws SAXException {

        System.out.println("MyDefaultHandler.startDocument()");
    }
    //遇到開始標(biāo)簽
    /*
      qName  當(dāng)前遇到的標(biāo)簽名稱
    */

    @Override
    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {

        System.out.println("MyDefaultHandler.startElement()"+qName);
    }

    /**
     * 遇到文本內(nèi)容(包括空格換行)
     * @param ch : 表示整個xml文檔所有文本內(nèi)容
     * @param start: 表示當(dāng)前讀到的文本內(nèi)容的開始位置
     * @param length: 表示當(dāng)前讀到的文本內(nèi)容的長度
     */

    @Override
    public void characters(char[] ch, int start, int length) throws SAXException {

        String  content = new String(ch,start,length);

        System.out.println("MyDefaultHandler.characters()-->"+content);
    }
    /**
     * 遇到結(jié)束標(biāo)簽
     * @param qName: 表示當(dāng)前讀取的結(jié)束標(biāo)簽名稱
     */
    @Override
    public void endElement(String uri, String localName, String qName) throws SAXException {

        System.out.println("MyDefaultHandler.endElement()-->"+qName);
    }
    /**
     * 遇到結(jié)束文檔時
     */

    @Override
    public void endDocument() throws SAXException {

        System.out.println("MyDefaultHandler.endDocument");
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末装获,一起剝皮案震驚了整個濱河市瑞信,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌穴豫,老刑警劉巖凡简,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異精肃,居然都是意外死亡秤涩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進(jìn)店門司抱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來筐眷,“玉大人,你說我怎么就攤上這事习柠≡纫ィ” “怎么了?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵津畸,是天一觀的道長振定。 經(jīng)常有香客問我,道長肉拓,這世上最難降的妖魔是什么后频? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮暖途,結(jié)果婚禮上卑惜,老公的妹妹穿的比我還像新娘。我一直安慰自己驻售,他們只是感情好露久,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著欺栗,像睡著了一般毫痕。 火紅的嫁衣襯著肌膚如雪征峦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天消请,我揣著相機(jī)與錄音栏笆,去河邊找鬼。 笑死臊泰,一個胖子當(dāng)著我的面吹牛蛉加,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播缸逃,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼针饥,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了需频?” 一聲冷哼從身側(cè)響起丁眼,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎贺辰,沒想到半個月后户盯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡饲化,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了吗伤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吃靠。...
    茶點(diǎn)故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖足淆,靈堂內(nèi)的尸體忽然破棺而出巢块,到底是詐尸還是另有隱情,我是刑警寧澤巧号,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布族奢,位于F島的核電站,受9級特大地震影響丹鸿,放射性物質(zhì)發(fā)生泄漏越走。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一靠欢、第九天 我趴在偏房一處隱蔽的房頂上張望廊敌。 院中可真熱鬧,春花似錦门怪、人聲如沸骡澈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肋殴。三九已至囤锉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間护锤,已是汗流浹背官地。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蔽豺,地道東北人区丑。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像修陡,于是被迫代替她去往敵國和親沧侥。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法魄鸦,類相關(guān)的語法宴杀,內(nèi)部類的語法,繼承相關(guān)的語法拾因,異常的語法旺罢,線程的語...
    子非魚_t_閱讀 31,665評論 18 399
  • 1. XML總結(jié) 1.1. XML簡介 XML : 可擴(kuò)展的標(biāo)記語言。(和HTML非常類似的) 可擴(kuò)展的绢记。 自定義...
    Ethan_Walker閱讀 3,045評論 0 12
  • 一扁达、緒論 上周工作需要了解項(xiàng)目的一些大體內(nèi)容,結(jié)果在xml解析這一塊看的迷迷糊糊的蠢熄,所以在這里把學(xué)習(xí)到xm...
    cao健強(qiáng)閱讀 4,046評論 1 7
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,321評論 25 707
  • 我離開家鄉(xiāng)那天跪解,就沒想著回去。 想著在打拼的城市留下來签孔, 可萬般努力也留不下叉讥。 家鄉(xiāng)已然也回不去。 去哪里饥追? 無家可歸图仓。
    FreeManFree閱讀 224評論 0 0