1 DOM4J是什么
DOM4J是針對Java開發(fā)人員專門提供的XML文檔解析規(guī)范,它不同與DOM,但與DOM相似。DOM4J針對Java開發(fā)人員而設(shè)計,所以對于Java開發(fā)人員來說,使用DOM4J要比使用DOM更加方便。
DOM4J對DOM和SAX提供了支持,使用DOM4J可以把org.dom4j.document轉(zhuǎn)換成org.w3c.Document,DOM4J也支持基于SAX的事件驅(qū)動處理模式。
使用者需要注意,DOM4J解析的結(jié)果是org.dom4j.Document,而不是org.w3c.Document。DOM4J與DOM一樣,只是一組規(guī)范(接口與抽象類組成),底層必須要有DOM4J解析器的實現(xiàn)來支持。
DOM4J使用JAXP來查找SAX解析器,然后把XML文檔解析為org.dom4j.Document對象。它還支持使用org.w3c.Document來轉(zhuǎn)換為org.dom4j.Docment對象。
2 DOM4J中的類結(jié)構(gòu)
在DOM4J中,也有Node、Document、Element等接口,結(jié)構(gòu)上與DOM中的接口比較相似。但還是有很多的區(qū)別:
在DOM4J中,所有XML組成部分都是一個Node,其中Branch表示可以包含子節(jié)點(diǎn)的節(jié)點(diǎn),例如Document和Element都是可以有子節(jié)點(diǎn)的,它們都是Branch的子接口。
Attribute是屬性節(jié)點(diǎn),CharacterData是文本節(jié)點(diǎn),文本節(jié)點(diǎn)有三個子接口,分別是CDATA、Text、Comment。
3 DOM4J獲取Document對象
使用DOM4J來加載XML文檔,需要先獲取SAXReader對象,然后通過SAXReader對象的read()方法來加載XML文檔:
new SAXReader.read(“xml文檔”);
4 DOM4J保存Document對象
保存Document對象需要使用XMLWriter對象的write()方法來完成,在創(chuàng)建XMLWriter時還可以為其指定XML文檔的格式(縮進(jìn)字符串以及是否換行),這需要使用OutputFormat來指定。
5 DOM4J創(chuàng)建Document對象
DocumentHelper類有很多的createXXX()方法,用來創(chuàng)建各種Node對象。