好程序員Java教程分享詳細瞭解Javasax解析器

  好程序員Java教程分享詳細瞭解Javasax解析器,SAX(針對XML的簡單API)是基於事件爲XML文檔的解析器。不像DOM解析器,SAX解析器建立沒有解析樹。SAX是一個流接口用於XML的,這意味着使用SAX應用接收事件通知有關XML文檔被處理的元素,屬性,在按順序每次開始在文檔的頂部,並與所述閉合結束根元素。程序員

 

  讀取XML文件從上到下,構成一個結構完整的XML文檔的標記app

 

  令牌以相同的順序進行處理,它們出如今文檔中ide

 

  報告應用程序,由於它們所出現解析器遇到標記的特性spa

 

  應用程序提供了必須的解析器註冊的「事件」處理程序教程

 

  做爲標記標識,在處理程序回調方法相關信息調用接口

 

  何時使用?事件

 

  應該使用SAX解析器的時候:ip

 

  能夠在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)

相關文章
相關標籤/搜索