今天的需求是讀取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...