dom4j實現對xml簡單的增刪改查

2021-09-01 11:49:02 字數 3285 閱讀 9468

xml留了個結課作業: 後台用xml檔案作為儲存做個迷你系統實現增刪改查的功能, 在此記錄一下

先得引入dom4j的jar包放在專案的web-inf-->lib目錄下

先新建乙個讀取器,  讀取你想操作的xml檔案(我這裡寫的絕對路徑)

//讀取xml檔案,獲得document物件

saxreader reader = new saxreader();

document document = null;

try catch (documentexception e)

上邊的try catch不加的話eclipse會報錯, 因為涉及到檔案操作, document不初始為null化也會報錯

//獲得根節點的屬性物件

element rootelem = document.getrootelement();

基本語句:

//以下操作以root為例,所有節點都可以並非只有根節點,下面的孩子指第一代孩子

//返回root節點的標籤名為"user"的孩子節點,如果有多個只返回第乙個

element contactelem = rootelem.element("user");

//獲取節點標籤之間的內容

string text=contactelem .gettext();

//返回所有的孩子節點,即乙個listlisteles = rootelem.elements();

//返回該節點的屬性,返回的是乙個物件

attribute rootattr = rootelem.attribute("id");

//更改屬性值

rootattr.setvalue("更改後的id值");

//給元素新增屬性和屬性值

rootelem.addattribute("name", "新增成功!");

//刪除節點的某屬性

rootelem.remove(rootattr);

//節點和節點的屬性都可以獲取名字(標籤名/屬性名)

string idname = rootattr.getname();

string tagname = rootelem.getname();

//獲取屬性的屬性值

string value=rootattr.getvalue();

所有涉及到修改增加的操作, 修改完dom物件後都要寫回檔案:

outputformat format=outputformat.createprettyprint();

format.setencoding("utf-8");

org.dom4j.io.xmlwriter writer=new org.dom4j.io.xmlwriter(new fileoutputstream(new file(這裡填你的xml路徑)), format);

writer.write(document);

writer.close();

我這裡有個使用者表如下, 做後端的賬號密碼儲存

//user, password是前台傳來的賬號密碼

boolean rightpassword=false;

listeles = rootelem.elements();

for (element ele : eles)

}

這裡拿另乙個xml舉例, 該xml儲存文章

newarticle.settext("文章內容");

//以下的輸出檔案和上面提到的一樣

outputformat format=outputformat.createprettyprint();

format.setencoding("utf-8");

org.dom4j.io.xmlwriter writer=new org.dom4j.io.xmlwriter(new fileoutputstream(new file("你的xml路徑")), format);

writer.write(document);

writer.close();

下面示例按標籤內容刪除乙個節點

(應該按某個屬性值如id刪除,因為上例追求簡單沒設屬性)

listeles = rootelem.elements();

for (element ele : eles)

}//以下的輸出檔案和上面提到的一樣

outputformat format=outputformat.createprettyprint();

format.setencoding("utf-8");

org.dom4j.io.xmlwriter writer=new org.dom4j.io.xmlwriter(new fileoutputstream(new file("你的xml路徑")), format);

writer.write(document);

writer.close();

和上面的刪除只有一句不同, 找到節點後想修改什麼就 set什麼就可以了

listeles = rootelem.elements();

for (element ele : eles)

}//以下的輸出檔案和上面提到的一樣

outputformat format=outputformat.createprettyprint();

format.setencoding("utf-8");

org.dom4j.io.xmlwriter writer=new org.dom4j.io.xmlwriter(new fileoutputstream(new file("你的xml路徑")), format);

writer.write(document);

writer.close();

dom4j 使用dom4j生成xml

使用org.dom4j.element 建立xml 生成service.xml檔案 param tran 交易物件 param filepath 資料夾路徑 public static void exportservicexml listtranlist,string filepath servic...

Dom4J解析xml簡單理解

第一次寫部落格,請多關照 剛學了dom4j解析,簡單分享一下 首先我們模擬乙個員工.xml xuming 5000 30chengheng 4800 31wanghaitao 5200 28zhangjiujun 4600 34在解析之前,我們要把要用的jar包匯入lib中 然後我們開始解析 pub...

dom4j讀取XML簡單使用

測試例子1 suppresswarnings unchecked public class testdom4j 得到文件的document param is return throws documentexception public static document getdocument inpu...