你的位置:首页 > Java教程

[Java教程]java对xml节点属性的增删改查

学习本文之前请先看我的另一篇文章JAVA对可以对

 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.12 import org.junit.Test;13 14 /**15  * 使用dom4j操作16  * 对17  * 时间:2016年10月2号18  * 操作19  * 本文件文件名为:attrDemo.java20  * @author shutu00821  *22 */23 public class attrDemo{24   @Test25   public void exmple() throws Exception{26     //读取27     SAXReader reader = new SAXReader();28     Document document = reader.read(new File("./src/contact.));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     //将某节点的属性和值写入56     new new FileWriter("./src/contact.));57     writer.write(document);58     writer.close();59     60     /**61      * 如果文档中有中文需要设置字符编码62      * 用如下语句:63      * OutputFormat format = OutputFormat.createPrettyPrint();64      * format.setEncoding("GBK");65      * 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调节本例子的代码。

以下是

 1 <? 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

文件目录如图所示: