dom4j解析xml檔案

2021-06-16 18:31:03 字數 3299 閱讀 1902

一、利用dom4j建立乙個內容如下的xml檔案sqlmapconfig.xml

步驟:1.建立乙個輸出流,指定建立的sqlmapconfig.xml檔案的位置-------outputstream

outputstream os = new fileoutputstream("d:/sqlmapconfig.xml");

2.建立乙個xml編寫器-------xmlwriter

xmlwriter writer = new xmlwriter(os,outputformat.createprettyprint());

這裡os是前面新建的乙個輸出流,outputformat.createprettyprint()是指定輸出的格式的,這裡代表內容縮排。

3.建立xml文件-------document、documenthelper

document document = documenthelper.createdocument();

4.建立裡面的所有結點元素-------elemenet

element configuration = document.addelement("configuration");

..............

新建結點元素的形式是:element 子結點 = 父節點.addelement("子結點名");

給結點元素新增屬性是:結點.addattribute("屬性名", "屬性值");

5.儲存xml

writer.write(document);

**如下:

1

public

class

createxml

51 }

二、查詢xml檔案的內容

查詢xml檔案內容有兩種情況,第一種就是查詢出所有同名的結點元素然後遍歷、第二種就是直接找到某個結點元素

比如遍歷sqlmapconfig.xml,將driver、url、username、password的值讀取出來就有兩種方法,**如下

方法一:

1

public

class

getnodes else

if("url".equals(name))else

if("username".equals(name))else

if("password".equals(name))29}

30 system.out.println("driver:"+driver+",url:"+url+",username:"+username+",password:"+password);31}

32 }

這裡listelements = document.selectnodes("/configuration/environments/environment/datasource/property")是指將名為property的結點元素全部找出來,用乙個list接收。

方法二:

1

public

class

getnodes1

23 }

這種方法就沒有遍歷了,就是直接將要查詢的結點找出來,用selectsinglenode()函式。這裡的[@name='driver']是指名找到哪乙個property結點,相當於乙個鍵值對,表示找有name="driver"屬性的property結點。

形式為[@屬性名='屬性值']。

三、修改xml檔案

步驟:1.讀取要修改的xml檔案

2.查詢到要修改的結點

3.儲存

**如下:

1

public

class

updatenode

2223 }

四、刪除xml檔案的某個結點元素

刪除和修改一樣,也是要先找到要刪除的結點,然後刪除之,最後儲存修改過的檔案。刪除結點的形式為:父節點.remove(子節點);

**如下:

1

public

class

deletenode

23 }

xml檔案解析 DOM4J

讀取並解析xml文件 讀寫xml文件主要依賴於org.dom4j.io包,其中 提供domreader 和saxreader 兩類不同方式,而呼叫方式是一樣的。這就是依靠介面的好處。從檔案讀取 xml,輸入檔名,返回 xml文件 publicdocument read string filename...

dom4j解析XML檔案

dom4j解析xml檔案 匯入dom4j.jar包 建立xml檔案 xmlwriter writer null 宣告寫xml的物件 outputformat format outputformat.createprettyprint format.setencoding utf 8 設定xml檔案的...

dom4j解析XML檔案

匯入dom4j.jar包 建立xml檔案 xmlwriter writer null 宣告寫xml的物件 outputformat format outputformat.createprettyprint format.setencoding utf 8 設定xml檔案的編碼格式 string f...