天天看點

xml 檔案解析 java_淺談用java解析xml文檔(一)

關于xml本身的文法及使用的環境不多說了,網上有很多規則,

然對xml文檔進行解析,一般分為四種解析方式,基于java官方文檔的Dom 和Sax解析,還有就是基于 第三方jar包的 Jdom 和

Dom4j解析。

一、首先我們來看Dom解析:

1、定義工廠,使應用程式能夠從 XML 文檔擷取生成 DOM 對象樹的解析器。

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

在應用程式擷取對 DocumentBuilderFactory 的引用後,它可以使用工廠來配置和擷取解析器執行個體。

使用DocumentBuilderFactory的目的是為了建立與具體解析器無關的程式,當DocumentBuilderFactory類的靜态方法

newInstance()被調用時,它根據一個系統變量來決定具體使用哪一個解析器。

2、擷取具體的dom解析器。

DocumentBuilder db = dbf.newDocumentBuilder();

當獲得一個工廠對象之後,使用它的靜态方法newDocumentBuilder(),可以獲得一個DocumentBuilder對象。

這個對象代表了具體的DOM解析器。

解析器的具體實作對于程式來說并不重要。

然後我們就可以使用這個解析器對xml文檔進行解析。

3、解析一個xml文檔,獲得document對象,以books.xml為例

Document document = db.parse("books.xml");

根據标簽名通路一個節點。

NodeList bookList = document.getElementsByTagName("book");

4、周遊節點

for (int i = 0; i < bookList.getLength(); i++) {

//獲得元素,将節點強制轉換為元素

Element element = (Element)bookList.item(i)

}

操作子節點的元素:element.getElementsByTagName("節點名").item(0)

擷取子節點value值可以使用getFirstChild().getNodeValue() 方法,

具體可以檢視API幫助文檔進行操作。

Dom 的優點:樹結構,直覺好了解,代碼易編寫,解析過程中樹結構儲存在記憶體中,易于修改、删除、重新排列等多種功能。

缺點:當xml檔案較大時,對記憶體的消耗比較大,記憶體容易溢出。