SAX解析操作

2021-09-25 16:19:49 字數 1338 閱讀 5583

如果要想使用sax解析,首先需要編寫乙個sax解析器,並且定義乙個類,並使該類繼承defaulthandler類,同時覆寫startdocument(),startelement(),endelement()和characters()方法

建立完sax解析器之後,還需要建立saxparse***ctory和saxparser兩個類,可以通過saxparse***ctory的newsaxparser()方法建立saxparser物件,之後通過saxparser的parse()方法指定要解析的xml檔案和制定的sax解析器

saxparse***ctory spf = saxparse***ctory.newinstance();

saxparser saxparser = factory. newsaxparser();

saxparser.parse(inputsource, new customizesaxhandle());

其中,inputsource是要解析的檔案,檔案路徑或檔案輸入流均可;new customizesaxhandle()為新建的自定義sax解析器

public class customizesaxhandle extends defaulthandler 

@override

public void enddocument() throws saxexception

@override

public void startelement(string uri, string localname, string qname, attributes attributes) throws saxexception

}system.out.println(">");

}@override

public void endelement(string uri, string localname, string qname) throws saxexception

@override

public void characters(char ch, int start, int length) throws saxexception

@override

public void setdocumentlocator(locator locator)

}

其中,startelement()方法中的qname指的是節點名稱,attributes指的是標籤中配置的屬性值;而characters()方法中的ch指的是要解析的xml檔案中的所有字元的位元組陣列,start和length組合使用可以擷取每個標籤對應的具體值;解析器中定義locator locator;可以獲取每個節點的位置

dom解析與sax解析

時間處理器 文件解析開始 發現元素開始標籤 發現元素結束標籤 文件解析結束 優點不需要等待整個文件 存入,當解析到某一部分時自動觸發到對應方法做處理 不需要將整個文件載入到記憶體中,對記憶體的損耗比較少,無論多大的xml理論上都可以計算 缺點每次解析只能處理一次,下次再想處理還要從新解析 只能查詢 ...

XML解析之SAX解析

sax解析 核心類 saxparse ctory saxparser defaulthandler 步驟 建立工廠類例項 saxparse ctory factory saxparse ctory.newinstance 獲取解析器類例項 saxparser parser factory.newsa...

SAX解析及SAX和DOM總結

dom解析器是將xml文件解析成樹狀模型並放入記憶體來完成解析工作的,而後對文件的操作都是在這個樹狀模型上完成的。這樣做的好處是結構清楚,操作方便。缺點極其耗費系統資源。不適用於解析超大型的xml檔案。sax解析器是通讀整個文件,根據文件內容產生事件,而把對這些事件的處理交由事件處理器處理。sax不...