詳細(xì)了解Java sax解析器

詳細(xì)了解Java sax解析器

天津卓眾教育      2022-04-15 23:14:01     19

詳細(xì)了解Java sax解析器,  SAX(針對(duì)XML的簡(jiǎn)單API)是基于事件為XML文檔的解析器。不像DOM解析器,SAX解析器創(chuàng)建沒(méi)有解析樹(shù)。SAX是一個(gè)流接口用于XML的,

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹



  SAX(針對(duì)XML的簡(jiǎn)單API)是基于事件為XML文檔的解析器。不像DOM解析器,SAX解析器創(chuàng)建沒(méi)有解析樹(shù)。SAX是一個(gè)流接口用于XML的,這意味著使用SAX應(yīng)用接收事件通知有關(guān)XML文檔被處理的元素,屬性,在按順序每次開(kāi)始在文檔的頂部,并與所述閉合結(jié)束根元素。


  讀取XML文件從上到下,構(gòu)成一個(gè)結(jié)構(gòu)完整的XML文檔的標(biāo)記


  令牌以相同的順序進(jìn)行處理,它們出現(xiàn)在文檔中


  報(bào)告應(yīng)用程序,因?yàn)樗鼈兯霈F(xiàn)解析器遇到標(biāo)記的特性


  應(yīng)用程序提供了必須的解析器注冊(cè)的“事件”處理程序


  作為標(biāo)記標(biāo)識(shí),在處理程序回調(diào)方法相關(guān)信息調(diào)用


  什么時(shí)候使用?


  應(yīng)該使用SAX解析器的時(shí)候:


  可以在XML文檔從上往下處理以線性方式


  該文件并不深層次嵌套


  處理一個(gè)非常大的XML文檔,DOM樹(shù)會(huì)占用太多的內(nèi)存。典型DOM的實(shí)現(xiàn)使用10字節(jié)的存儲(chǔ)器以表示XML的一個(gè)字節(jié)


  解決的問(wèn)題涉及的XML文檔的一部分


  數(shù)據(jù)是可用的,只要它是由解析器看出,這樣的SAX可以很好地用于到達(dá)流的XML文檔


  SAX的缺點(diǎn)


  它是在一個(gè)只進(jìn)入處理隨機(jī)訪問(wèn)方式XML文檔


  如果需要跟蹤的數(shù)據(jù)分析器已經(jīng)看到或更改項(xiàng)目的順序,必須自已編寫(xiě)代碼和數(shù)據(jù)存儲(chǔ)


  ContentHandler接口


  此接口指定SAX解析器用來(lái)通知XML文檔,已經(jīng)看到部件應(yīng)用程序的回調(diào)方法。


  voidstartdocument()-調(diào)用在一個(gè)文件的開(kāi)頭。


  voidenddocument()-調(diào)用在一個(gè)文件的末尾。


  voidstartElement(Stringuri,StringlocalName,StringqName,Attributesatts)-調(diào)用在一個(gè)元素的開(kāi)頭。


  voidendElement(Stringuri,StringlocalName,StringqName)-調(diào)用在一個(gè)元件的末端。


  voidcharacters(char[]ch,intstart,intlength)-字符數(shù)據(jù)出現(xiàn)時(shí)調(diào)用。


  voidignorableWhitespace(char[]ch,intstart,intlength)-當(dāng)DTD是當(dāng)前和忽略空白遇到時(shí)調(diào)用。


  voidprocessingInstruction(Stringtarget,Stringdata)-當(dāng)處理指令的認(rèn)可時(shí)調(diào)用。


  voidsetdocumentLocator(Locatorlocator))-提供可用于識(shí)別文檔中的位置的定位器。


  voidskippedEntity(Stringname)-一個(gè)尚未解決實(shí)體遇到時(shí)調(diào)用。


  voidstartPrefixMapping(Stringprefix,Stringuri)-當(dāng)一個(gè)新的命名空間的映射定義調(diào)用。


  voidendPrefixMapping(Stringprefix)-當(dāng)一個(gè)命名空間定義結(jié)束其范圍時(shí)調(diào)用。


  屬性接口


  這種接口指定用于處理連接到一個(gè)元素的屬性的方法。


  intgetLength()-返回屬性的數(shù)目。


  StringgetQName(intindex)


  StringgetValue(intindex)


  StringgetValue(Stringqname)


      以上就是天津卓眾教育java培訓(xùn)機(jī)構(gòu)小編介紹的“詳細(xì)了解Java sax解析器”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過(guò)大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。