zoukankan      html  css  js  c++  java
  • 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

    文件目录如图所示:

  • 相关阅读:
    1725最少硬币问题(DP)
    3358高数Umaru系列(9)——哈士奇(DP)
    1018骨牌铺方格(分治算法)
    3664顺序表应用7:最大子段和之分治递归法(分治算法)
    1722整数因子分解问题(分治算法)
    剑指offer JZ-11
    剑指offer JZ-10
    剑指offer JZ-9
    剑指offer JZ-8
    剑指offer JZ-7
  • 原文地址:https://www.cnblogs.com/vastsum/p/5928869.html
Copyright © 2011-2022 走看看