您好,登錄后才能下訂單哦!
小編給大家分享一下Java中Javasax解析器有什么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
SAX(針對XML的簡單API)是基于事件為XML文檔的解析器。不像DOM解析器,SAX解析器創建沒有解析樹。SAX是一個流接口用于XML的,這意味著使用SAX應用接收事件通知有關XML文檔被處理的元素,屬性,在按順序每次開始在文檔的頂部,并與所述閉合結束根元素。
讀取XML文件從上到下,構成一個結構完整的XML文檔的標記
令牌以相同的順序進行處理,它們出現在文檔中
報告應用程序,因為它們所出現解析器遇到標記的特性
應用程序提供了必須的解析器注冊的“事件”處理程序
作為標記標識,在處理程序回調方法相關信息調用
什么時候使用?
應該使用SAX解析器的時候:
可以在XML文檔從上往下處理以線性方式
該文件并不深層次嵌套
處理一個非常大的XML文檔,DOM樹會占用太多的內存。典型DOM的實現使用10字節的存儲器以表示XML的一個字節
解決的問題涉及的XML文檔的一部分
數據是可用的,只要它是由解析器看出,這樣的SAX可以很好地用于到達流的XML文檔
SAX的缺點
它是在一個只進入處理隨機訪問方式XML文檔
如果需要跟蹤的數據分析器已經看到或更改項目的順序,必須自已編寫代碼和數據存儲
ContentHandler接口
此接口指定SAX解析器用來通知XML文檔,已經看到部件應用程序的回調方法。
voidstartDocument()-調用在一個文件的開頭。
voidendDocument()-調用在一個文件的末尾。
voidstartElement(Stringuri,StringlocalName,StringqName,Attributesatts)-調用在一個元素的開頭。
voidendElement(Stringuri,StringlocalName,StringqName)-調用在一個元件的末端。
voidcharacters(char[]ch,intstart,intlength)-字符數據出現時調用。
voidignorableWhitespace(char[]ch,intstart,intlength)-當DTD是當前和忽略空白遇到時調用。
voidprocessingInstruction(Stringtarget,Stringdata)-當處理指令的認可時調用。
voidsetDocumentLocator(Locatorlocator))-提供可用于識別文檔中的位置的定位器。
voidskippedEntity(Stringname)-一個尚未解決實體遇到時調用。
voidstartPrefixMapping(Stringprefix,Stringuri)-當一個新的命名空間的映射定義調用。
voidendPrefixMapping(Stringprefix)-當一個命名空間定義結束其范圍時調用。
屬性接口
這種接口指定用于處理連接到一個元素的屬性的方法。
intgetLength()-返回屬性的數目。
StringgetQName(intindex)
StringgetValue(intindex)
StringgetValue(Stringqname)
以上是“Java中Javasax解析器有什么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。