xml解析。

在 javax.xml.parsers 包中,定義了幾個工廠類,程序員調用這些工廠類,可以得到對xml文檔進行解析的 DOM 或 SAX 的解析器對象。

一, 獲得DOM解析器的步驟:
1.調用DocumentBuilderFactory().newInstance()得到創建DOM解析器的工廠。
如:DocumentBuilderFactory factory=DocumentBuilderFactory().newinstance();
2.調用工廠的newDocumentBulider()得到解析器的對象。
如: DocumentBuilder builder=factory.newDocumentBuilder();
3.調用 DOM 解析器對象的 parse() 方法解析 XML 文檔,得到代表整個文檔的 Document 對象,進行可以利用DOM特性對整個XML文檔進行操作了。
如:Document document =builder.parse(fileName);
接下里就是利用document得到節點的屬性和子節點,利用遞歸的方法可以把所有的節點信息都查找出來。
這裏寫圖片描述

這裏寫圖片描述

二, 獲得SAX解析器的步驟

SAX解析允許在讀取文檔的時候,即對文檔進行處理,而不必等到整個文檔裝載完纔會文檔進行操作。

1.使用SAXParserFactory創建SAX解析工廠
SAXParserFactory factory=SAXParseFactory.newInstance();
2.通過工廠拿到解析器對象
SAXParser sp=factory.newSAXParser();
3.將解析對象和事件處理器對象關聯
sp.parse(“filename”,new DefaultHandle(){………});

事件處理器中常用的方法。
startDocument() —> 解析器發現了文檔的開始標籤
endDocument() —> 解析器發現了文檔結束標籤
startElement() —> 解析器發現了一個起始標籤
character() —> 解析器發現了標籤裏面的文本值
endElement() —> 解析器發現了一個結束標籤
這裏寫圖片描述
這裏寫圖片描述

在使用 DOM 解析 XML 文檔時,需要讀取整個 XML 文檔,在內存中構建代表整個 DOM 樹的Doucment對象,從而再對XML文檔進行操作。此種情況下,如果 XML 文檔特別大,就會消耗計算機的大量內存,嚴重情況下可能還會導致內存溢出。

三,DOM4j解析

使用這種方法,需要首先導入相應的jar包。

獲得Document對象的方式有三種方式,但是主要用的是下面這種:
讀取XML文件獲得document對象
SAXReadder reader=new SAXReader();
Document docuemnt=reader.read(“filename”);
這種方法和DOM幾乎一樣,也是可以通過遞歸遍歷所有元素。
這裏寫圖片描述
這裏寫圖片描述
謝謝大家,希望對大家有幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章