dom 4 j 操作xml教程

2022-03-20 05:07:50 字數 3457 閱讀 6633

基礎操作

xpath 解析xml檔案

迭代器迴圈遍歷

快速迴圈

建立新的xml文件

對xml文件進行增、刪、改、查

文件字串相互轉換

這是我們要讀取的xml檔案

<?xml version="1.0" encoding="utf-8"?>		

得到文件物件

saxreader saxreader = new saxreader();

document document = saxreader.read(new file("src/config.xml"));

獲取根節點element就是節點類。

element element = document.getrootelement();
獲取指定節點下的直接子節點

listelements = element.elements();
獲取節點的屬性值

document.getrootelement().attributevalue("name")
獲取節點下的指定子節點物件

element e = document.getrootelement().element("action");
獲取節點的文字

element foo = document.getrootelement().element("foo");

system.out.println(foo.gettext());

使用xpath強大的功能快速定位目標元素

saxreader saxreader = new saxreader();

document document = saxreader.read(new file("xml路徑"));

//查詢 config 標籤下的 action 標籤下的所有forward標籤,返回多個

listlist = document.selectnodes("/config/action/forward");

//查詢config標籤下的action標籤,如果有多個返回乙個

node node = document.selectsinglenode("/config/action");

//注意node可以強轉成element

element element = (element)node;

public static void bar(document document) 

system.out.println("我是分割線 ---------- root.elementiterator(\"foo\")");

// 迭代root節點下的直接子節點, 但只迭代節點名是 foo的節點

for (iteratorit = root.elementiterator("foo"); it.hasnext();)

system.out.println("我是分割線------------- root.attributeiterator()");

// 迭代root節點的所以屬性

for (iteratorit = root.attributeiterator(); it.hasnext();)

}

如果您必須使用大型xml文件樹,那麼為了提高效能,我們建議您使用快速迴圈方法,這樣可以避免iterator為每個迴圈建立物件的成本。例如

public void treewalk(document document) 

public void treewalk(element element)

else }}

public static document createdocument()
將文件寫入這種方式有個缺點就是格式非常不美觀,如果要美觀的格式下面會講

filewriter out = new filewriter("foo.xml");

createdocument().write(out);

out.close();

格式美觀的

public static void write(document document) throws ioexception
原xml

張三19男

李四19女

public static void add() throws exception
結果

<?xml version="1.0" encoding="utf-8"?>

張三19上海男

李四19女

// 刪除節點

public static void delete() throws exception

結果

<?xml version="1.0" encoding="utf-8"?>

張三19男

李四19女

// 刪除節點

public static void update() throws exception

結果

<?xml version="1.0" encoding="utf-8"?>

富貴19男

李四19女

轉為字串

document document = …;

string text = document.asxml();

字串解析成document物件

string text = "james

";document document = documenthelper.parsetext(text);

dom4j 使用dom4j生成xml

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

使用dom4j操作xml

1 xml中元素與dom4j中類和屬性的對應關係 document 對應整個xml檔案 element xml中的一對尖括號 attribute 乙個尖括號中的鍵值對 text 一對尖括號之間的內容 2 生成乙個xml檔案 建立乙個xml檔案對應的document物件 document docume...

dom4j操作 xml檔案

父類 public class ba mlconfig public static void initconfig string rootelement,file xmlconfig throws exception fileoutputstream fos new fileoutputstream...