兩種解析xml文件的方法---dom和sax
dom方式解析xml檔案
doc解析程式設計:
查詢某乙個節點
// 查詢固定值的書的元素的第二個子節點
public static voidfindfixedchildren(document doc)
//查詢書架中的子元素的第二個元素
intindex = 2;
//獲取集合中的長度並判斷,如果長度》2,說明有要找的那個元素,然後找出並輸出
if(list.getlength() >= 2)
// 將記憶體中樹狀結構doc'寫入到xml文件中
transforme***ctory factory = transforme***ctory.newinstance();
// 由工廠物件生成裝換物件transformer
transformer trans = factory.newtransformer();
// 通過trans實現doc轉換到xml文件,用的此方法中的引數是(source,result),必須用此方法的實現了改介面的類才可以用,domsource實現了suorce
// 需要乙個domsource物件來代表源樹
trans.transform(newdomsource(doc),newstreamresult(newfile(
"src/book.xml")));
node方法的總結:
(1)node.getnodetype() 得到的是節點的型別 元素節點型別是1 文字節點為 3
(2)node.getnodevalue() 元素的值為空 因為節點是element,所有返回的是null
(3)得到元素中的內容的方法:
node.gettextcontent()
text text = (text)node.getchildnoddes().item(0) text.getnodevalues()
sam解析xml文件
(1)sam解析的優點:
sax解析允許在讀取文件的時候,即對文件進行處理,而不必等到整個文件裝載完才會文件進行操作。
(2)sam解析的分析:
sax採用事件處理的方式解析xml檔案,利用 sax 解析 xml 文件,涉及兩個部分:解析器和事件處理器:
• 解析器可以使用jaxp的api建立,建立出sax解析器後,就可以指定解析器去解析某個xml文件。
• 解析器採用sax方式在解析某個xml文件時,它只要解析到xml文件的乙個組成部分,都會去呼叫事件處理器的乙個方法,解析器在呼叫事件處理器的方法時,會把當前解析到的xml檔案內容作為方法的引數傳遞給事件處理器。
• 事件處理器由程式設計師編寫,程式設計師通過事件處理器中方法的引數,就可以很輕鬆地得到sax解析器解析到的資料,從而可以決定如何對資料進行處理。
(3)sam解析的步驟:
//獲取sax解析器工廠類的物件
saxparse***ctory factory = saxparse***ctory.newinstance();
//獲取sax解析器
saxparser sax = factory.newsaxparser();
//通過解析器解析xml文件
//bookhandler事件處理器
sax.parse(newfile("src/book.xml"),newbookhandler());
bookhandler是事件處理器,要想呼叫必須要重寫defaulthandler中的方法來實現功能,
classbookhandlerextendsdefaulthandler
//flag = false;
}@override
//文件結束時呼叫的方法
public voidenddocument()throwssaxexception
@override
//結束時呼叫的元素
public voidendelement(string uri, string locaname, string qname)
throwssaxexception
}@override
public voidstartdocument()throwssaxexception
@override
public voidstartelement(string uri, string locaname, string qname,
attributes attributes)throwssaxexception }}
兩種解析XML文件的方法 DOM和SAX
兩種解析xml文件的方法 dom和sax dom方式解析xml檔案 doc解析程式設計 查詢某乙個節點 查詢固定值的書的元素的第二個子節點 public static voidfindfixedchildren document doc 查詢書架中的子元素的第二個元素 intindex 2 獲取集合...
兩種XML解析方法
xml解析 概念 xml extended markup language,可擴充套件的標記性語言 可擴充套件 標籤 可以自己定義。張三30 李四40 html 超文字標記語言 文件中 標記 標籤 固定 pull 基於事件拉取的形式 事件 常量值 開始標籤 相應的動作 比如建立集合,物件。標籤和標籤...
XML的兩種解析方法 DOM與SAX的比較分析
1 sax解析 sax apifor xml。基於事件驅動的解析方法,逐行解析資料。解析過程 開始標籤 取值 結束標籤 取值 為解決dom的問題,出現了sax。sax 事件驅動。當解析器發現元素開始 元素結束 文字 文件的開始或 結束等時,傳送事件,程式設計師編寫響應這些事件的 儲存資料。2 dom...