好程式設計師Java教程分享詳細瞭解Javasax解析器

好程式設計師IT發表於2019-10-31

   好程式設計師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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章