學習本文之前請先看我的另一篇文章JAVA對XML節點的操作可以對XML操作有更好的了解。
1 package vastsum;
2
3 import java.io.File;
4 import java.io.FileWriter;
5 import java.util.Iterator;
6
7 import org.dom4j.Attribute;
8 import org.dom4j.Document;
9 import org.dom4j.Element;
10 import org.dom4j.io.SAXReader;
11 import org.dom4j.io.XMLWriter;
12 import org.junit.Test;
13
14 /**
15 * 使用dom4j操作xml
16 * 對xml屬性操作
17 * 時間:2016年10月2號
18 * 操作xml文件為contact.xml
19 * 本文件文件名為:attrDemo.java
20 * @author shutu008
21 *
22 */
23 public class attrDemo{
24 @Test
25 public void exmple() throws Exception{
26 //讀取XML文件,獲得document對象
27 SAXReader reader = new SAXReader();
28 Document document = reader.read(new File("./src/contact.xml"));
29
30 //獲得某個節點的屬性對象
31 Element rootElem = document.getRootElement();
32 //獲取根節點屬性對象
33 Attribute rootAttr = rootElem.attribute("id");
34
35 //獲取指定節點屬性對象
36 Element contactElem = rootElem.element("contact");
37 Attribute contactAttr = contactElem.attribute("id");
38
39 //遍歷某個節點的所有屬性
40 for (Iterator it = contactElem.attributeIterator();it.hasNext();){
41 Attribute conAttr= (Attribute)it.next();
42 String conTxt = conAttr.getValue();
43 String conAttrName = conAttr.getName();
44 System.out.println(conAttrName+" = "+conTxt);
45 }
46 //設置某節點的屬性和值
47 contactElem.addAttribute("name", "zhangsan");
48
49 //設置(更改)某屬性的值
50 Attribute nameAttr = contactElem.attribute("name");
51 nameAttr.setValue("lisi");
52
53 //刪除某節點的指定屬性
54 contactElem.remove(nameAttr);
55 //將某節點的屬性和值寫入xml文檔中
56 XMLWriter writer = new XMLWriter(new FileWriter("./src/contact.xml"));
57 writer.write(document);
58 writer.close();
59
60 /**
61 * 如果文檔中有中文需要設置字符編碼
62 * 用如下語句:
63 * OutputFormat format = OutputFormat.createPrettyPrint();
64 * format.setEncoding("GBK");
65 * XMLWriter writer = new XMLWriter(new FileWriter("./src/contact.xml"),format);
66 */
67 //獲取指定對象的屬性名
68 System.out.println(rootAttr.getName());
69 System.out.println(contactAttr.getName());
70 //獲取指定對象的屬性值
71 System.out.println(contactAttr.getValue());
72 System.out.println(rootAttr.getValue());
73 }
74 }
備注:以上例子代碼可以直接運行。可以使用Junit 4調節本例子的代碼。
以下是XML文檔:

文件目錄如圖所示:
