dom4j讀取並修改xml檔案

2021-09-17 23:13:41 字數 1823 閱讀 2196

今天的需求是讀取xml檔案,根據現有的實體bean修改xml檔案引數。

首先我們需要引入dom4j的依賴,如下:

org.dom4j

dom4j

2.1.1

我們主要使用的是dom4j提供的 saxreader類,找到根節點,下面附上**:

//獲得檔案

file file = new file(filepath);

//利用dom4j讀取xml

saxreader reader = new saxreader();

document document = reader.read(file);

//讀取根節點suite

element suite = document.getrootelement();

需求為讀取修改過資料後的excel,將其變為bean,將其與xml進行對比修改即可,修改屬性如下:

廢話不多說 接下來附上**,注釋已標清:

//讀取xml檔案並根據excel生成的bean修改

public static void readxml(string filepath,listexcellist) throws documentexception, ioexception else if("expectresult".equals(name1))

}//獲取當前test節點下名為classes的節點

element classes = elm.element("classes");

//取得當前classes節點下所有名為「class」的子節點

list classnodes = classes.elements("class");

//遍歷獲取class節點的屬性及值

for (iterator it2 = classnodes.iterator(); it2.hasnext();)

break;

}//如果保單號被刪除,則刪除xml中test

else

}//如果迴圈遍歷到bean的最後乙個物件還沒有找到,則直接刪除test

else}}

}//先遍歷bean,在巢狀遍歷xml(如果只根據xml中屬性去判斷bean中存在的資料,則會漏掉新新增的資料。反而言之如果只根據bean中的資料去xml中進行修改操作,則會漏刪不存在的資料。)

for (int i = 0; i < excellist.size();i++)

}}else}}

//指定檔案輸出的位置

fileoutputstream out =new fileoutputstream("h:\\testng.xml");

// 指定文字的寫出的格式:

outputformat format=outputformat.createprettyprint(); //漂亮格式:有空格換行

format.setencoding("utf-8");

format.setindent(" ");//設定縮排

format.setnewlines(true);// 設定換行

//1.建立寫出物件

xmlwriter writer=new xmlwriter(out,format);

//2.寫出document物件

writer.write(document);

//3.關閉流

writer.close();

}

傳入的file為xml生成路徑,開啟即可檢視。

Dom4j讀取xml檔案

一 xml檔案 1.0 encoding utf 8 chenleixing date 2015 02 15 張三24 男 zhangxiaochao date 2015 02 15 李四24 女 二 建立file,獲取根節點 獲取檔案的document物件,然後獲取對應的根節點 author ch...

Dom4j讀取xml文件

dom4j獲取文件的步驟和方法 1 獲取到dom4j的jar包以及幫助文件。方法 獲取xml文件物件document file xmlfile new file test.xml saxreader reader new saxreader document xmldoc reader.read x...

使用dom4j修改XML檔案內容

1 使用dom4j修改xml檔案的屬性 節點 public static int modixmlfile string filename,string newfilename 修改內容之二 把owner項內容改為tshinghua 並在owner節點中加入date節點,date 節點的內容為2004...