好程式設計師Java教程分享詳細瞭解Javasax解析器
好程式設計師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)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2662083/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師Java教程分享Java之設計模式程式設計師Java設計模式
- 好程式設計師Java教程分享Java語法程式設計師Java
- 好程式設計師Java教程分享List介面程式設計師Java
- 好程式設計師Java教程分享javaweb框架程式設計師JavaWeb框架
- 好程式設計師教程分享Java註解和運用註解程式設計程式設計師Java
- 好程式設計師Java培訓分享For迴圈詳解程式設計師Java
- 好程式設計師Java教程分享Java面試妙招程式設計師Java面試
- 好程式設計師Java教程分享Java開發工具程式設計師Java
- 好程式設計師Java教程Java動態代理機制詳解程式設計師Java
- 好程式設計師Java教程教你5分鐘瞭解快速排序程式設計師Java排序
- 好程式設計師Java教程分享Java開發主流框架程式設計師Java框架
- 好程式設計師Java教程分享Java 迴圈結構程式設計師Java
- 好程式設計師分享placeholder屬性詳解程式設計師
- 好程式設計師Java教程分享Jmeter效能測試程式設計師JavaJMeter
- 好程式設計師Java教程分享MyBatis Plus介紹程式設計師JavaMyBatis
- 好程式設計師Java學習路線分享finalize()方法詳解程式設計師Java
- 好程式設計師Java培訓分享Java動態代理機制詳解程式設計師Java
- 好程式設計師Java教程分享Java中this的幾種用法程式設計師Java
- 好程式設計師Java教程分享Java面試題之Hibernate程式設計師Java面試題
- 好程式設計師Java教程分享幾個流行的Java框架程式設計師Java框架
- 好程式設計師Java教程分享:Java工程師常見面試題程式設計師Java工程師面試題
- 好程式設計師Web前端教程分享新手應該瞭解的Cookie知識!程式設計師Web前端Cookie
- 好程式設計師Java教程分享Vue外掛之Axios程式設計師JavaVueiOS
- 好程式設計師Java教程分享MySQL目錄結構程式設計師JavaMySql
- 好程式設計師Java教程分享Java物件導向與程式導向程式設計師Java物件
- 好程式設計師Java學習路線分享5分鐘瞭解計數排序程式設計師Java排序
- 好程式設計師Java分享SpringMVC之@ResponseBody註解程式設計師JavaSpringMVC
- 好程式設計師Java培訓分享Java程式設計技巧程式設計師Java
- 好程式設計師Java乾貨分享5分鐘瞭解折半插入排序程式設計師Java排序
- 好程式設計師Java教程分享Java的4大核心基礎程式設計師Java
- 好程式設計師Java教程分享Java的五大特點程式設計師Java
- 好程式設計師Java教程分享如何系統的學習Java程式設計師Java
- 好程式設計師Java教程分享Java難點解析之泛型程式設計師Java泛型
- 好程式設計師Java教程分享Java設計模式的6大原則程式設計師Java設計模式
- 好程式設計師Java培訓分享Java程式設計師技能提升指南程式設計師Java
- 好程式設計師Java教程分享XML常見面試題程式設計師JavaXML面試題
- 好程式設計師Java教程分享Nginx靜態資源部署程式設計師JavaNginx
- 好程式設計師Java教程分享jsp相關面試題程式設計師JavaJS面試題