首页 > 代码库 > java对xml节点属性的增删改查

java对xml节点属性的增删改查

学习本文之前请先看我的另一篇文章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操作xml16  * 对xml属性操作17  * 时间:2016年10月2号18  * 操作xml文件为contact.xml19  * 本文件文件名为:attrDemo.java20  * @author shutu00821  *22  */23 public class attrDemo{24     @Test25     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

文件目录如图所示:

技术分享

java对xml节点属性的增删改查