Dom4j應用總結
Dom4j是一個開源的java xml解析處理工具。是Java解析處理xml的首選工具。
要用好Dom4j,必須先理解xml DOM模型。舉個簡單例子說明下:
好比有個person.xml
<?
xml
version
="1.0"
encoding
="GBK"
?>
<
person
no
="234"
>
<
name
>
<
firstname
>王
</
firstname
>
<
lastname
>八
</
lastname
>
</
name
>
<
age
>55
</
age
>
<
sex
>Man
</
sex
>
</
person
>
第一行是 XML 聲明。它定義 XML 的版本 (1.0) 和所使用的編碼GBK。
<person>是xml的根元素,no是<person>元素的一個屬性(Attribute),屬性值爲234。屬性 (Attribute) 提供關於元素的額外信息。
<name>是一個<person>元素(Element)的子元素,<firstname>、<lastname>是其<name>的子元素,其值分別爲「王、八」。呵呵。
經過這個xml,你能夠知道王八的編號、姓名、年齡、性別。
XML DOM (XML Document Object Model) 定義一套訪問和操做 XML 文檔的標準方法。
DOM 把 XML 文檔做爲樹結構來查看。可以經過 DOM 樹來訪問全部元素。能夠修改或刪除它們的內容,並建立新的元素。元素,它們的文本,以及它們的屬性,都被認爲是節點(Node)。
Dom4j是XML DOM的一種實現。所以DOM的概念和思想在Dom4j是同樣的。
下面總結下DOM4j中經常使用的一些方法:
一、從文件獲取Document對象
xml是存儲內存活着硬盤等介質中的數據,必須通過讀取才能生成Document對象。
建立一個讀取工具,
SAXReader reader = SAXReader()
而後,讀取文檔
read(File file) 或者read(InputStream in) 來讀入並生成Document對象:
Document document = reader.read();
固然這個讀取工具不少,讀入的方式也不少,原理就是這樣的。
二、從String獲取Document對象
Document document = DocumentHelper.parseText(String text)
三、將xml轉爲String
Node.asXML()
Node這個在這裏是接口,其餘Attribute, Branch, CDATA, CharacterData, Comment, Document, DocumentType, Element, Entity, ProcessingInstruction, Text都實現了Node接口,所以從這些對象上也可使用asXML() 方法。
四、獲取xml文檔的根元素
Element rootElement = document.getRootElement()
五、有關Element的最經常使用到的api
attributeValue(String name) :獲取元素String值。
elementIterator() :返回元素的全部子元素的Iterator迭代器。
elements() :返回元素包含全部子元素List。
getParent() :獲取父元素Element。
getPath() :獲取本身的xpath。
detach() :移除本身。
getName() :獲取節點的名稱。
selectNodes(String xpathExpression) :經過XPATH獲取節點。
selectSingleNode(String xpathExpression) :經過XPATH獲取一個節點。
getDocument() :做爲一個Document返回。