java對xml節點屬性的增刪改查


 個人博客地址:http://www.ijianmi.com/

學習本文之前請先看我的另一篇文章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>zhangsan@qq.com</email>
 8         <qq>432221111</qq>
 9     </contact>
10     <contact id="002">
11         <name>李四</name>
12         <age>20</age>
13         <phone>134222225555</phone>
14         <email>lisi@qq.com</email>
15         <qq>432222222</qq>
16     </contact>
17     <contactTwo>
18         <name>王五</name>
19         <age>32</age>
20         <phone>465431341</phone>
21         <emali>af@qq.com</emali>
22         <qq>46164694</qq>
23     </contactTwo>
24     <test>測試</test>
25     <test>其他用途</test>
26 </contactList>
View Code

文件目錄如圖所示:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM