课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > java对xml节点属性的增删改查
  • java对xml节点属性的增删改查

    发布:昆明Java培训      来源:达内新闻      时间:2016-10-07

  • 昆明达内Java培训的老师今天给大家分享java对xml节点属性的增删改查。

    在学习本文之前请昆明达内Java培训的老师提醒大家记得学习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>

    了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

    推荐文章

上一篇:昆明java:判断后无限循环输出的解决办法

下一篇:cpu占有率的java c# .net php node.js的实现

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:12/29

Java--零基础业余班

Java--零基础业余班

开班日期:12/29

Java--周末提升班

Java--周末提升班

开班日期:12/29

Java--零基础周末班

Java--零基础周末班

开班日期:12/29

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56