學習本文之前請先看我的另一篇文章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文檔:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <contactList id="0"> 3 <contact id="001" class="style"> 4 <name>張三</name> 5 <age>20</age> 6 <phone>134222223333</phone> 7 <email>[email protected]</email> 8 <qq>432221111</qq> 9 </contact> 10 <contact id="002"> 11 <name>李四</name> 12 <age>20</age> 13 <phone>134222225555</phone> 14 <email>[email protected]</email> 15 <qq>432222222</qq> 16 </contact> 17 <contactTwo> 18 <name>王五</name> 19 <age>32</age> 20 <phone>465431341</phone> 21 <emali>[email protected]</emali> 22 <qq>46164694</qq> 23 </contactTwo> 24 <test>測試</test> 25 <test>其他用途</test> 26 </contactList> View Code文件目錄如圖所示: