一、利用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);
**如下:
1public
class
createxml
51 }
二、查詢xml檔案的內容
查詢xml檔案內容有兩種情況,第一種就是查詢出所有同名的結點元素然後遍歷、第二種就是直接找到某個結點元素
比如遍歷sqlmapconfig.xml,將driver、url、username、password的值讀取出來就有兩種方法,**如下
方法一:
1public
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接收。
方法二:
1public
class
getnodes1
23 }
這種方法就沒有遍歷了,就是直接將要查詢的結點找出來,用selectsinglenode()函式。這裡的[@name='driver']是指名找到哪乙個property結點,相當於乙個鍵值對,表示找有name="driver"屬性的property結點。
形式為[@屬性名='屬性值']。
三、修改xml檔案
步驟:1.讀取要修改的xml檔案
2.查詢到要修改的結點
3.儲存
**如下:
1public
class
updatenode
2223 }
四、刪除xml檔案的某個結點元素
刪除和修改一樣,也是要先找到要刪除的結點,然後刪除之,最後儲存修改過的檔案。刪除結點的形式為:父節點.remove(子節點);
**如下:
1public
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...