java对xml节点属性的增删改查实现方法

 更新时间:2016年10月04日 19:56:10   投稿:jingxian  
下面小编就为大家带来一篇java对xml节点属性的增删改查实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

学习本文之前请先看我的另一篇文章JAVA对XML节点的操作可以对XML操作有更好的了解。

package vastsum;

import java.io.File;
import java.io.FileWriter;
import java.util.Iterator;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;

/**
 * 使用dom4j操作xml
 * 对xml属性操作
 * 时间:2016年10月2号
 * 操作xml文件为contact.xml
 * 本文件文件名为:attrDemo.java
 * @author shutu008
 *
 */
public class attrDemo{
 @Test
 public void exmple() throws Exception{
  //读取XML文件,获得document对象
  SAXReader reader = new SAXReader();
  Document document = reader.read(new File("./src/contact.xml"));
  
  //获得某个节点的属性对象
  Element rootElem = document.getRootElement();
  //获取根节点属性对象
  Attribute rootAttr = rootElem.attribute("id"); 
  
  //获取指定节点属性对象
  Element contactElem = rootElem.element("contact");
  Attribute contactAttr = contactElem.attribute("id");
  
  //遍历某个节点的所有属性
  for (Iterator it = contactElem.attributeIterator();it.hasNext();){
   Attribute conAttr= (Attribute)it.next();
   String conTxt = conAttr.getValue();
   String conAttrName = conAttr.getName();
   System.out.println(conAttrName+" = "+conTxt);
  }
  //设置某节点的属性和值
  contactElem.addAttribute("name", "zhangsan");
  
  //设置(更改)某属性的值
  Attribute nameAttr = contactElem.attribute("name");
  nameAttr.setValue("lisi");
  
  //删除某节点的指定属性
  contactElem.remove(nameAttr);
  //将某节点的属性和值写入xml文档中
  XMLWriter writer = new XMLWriter(new FileWriter("./src/contact.xml"));
  writer.write(document);
  writer.close();
  
  /**
   * 如果文档中有中文需要设置字符编码
   * 用如下语句:
   * OutputFormat format = OutputFormat.createPrettyPrint();
   * format.setEncoding("GBK");
   * XMLWriter writer = new XMLWriter(new FileWriter("./src/contact.xml"),format);
   */
  //获取指定对象的属性名
  System.out.println(rootAttr.getName());
  System.out.println(contactAttr.getName());
  //获取指定对象的属性值
  System.out.println(contactAttr.getValue());
  System.out.println(rootAttr.getValue());
 }
}

备注:以上例子代码可以直接运行。可以使用Junit 4调节本例子的代码。

以下是XML文档:

<?xml version="1.0" encoding="UTF-8"?>
<contactList id="0">
 <contact id="001" class="style">
  <name>张三</name>
  <age>20</age>
  <phone>134222223333</phone>
  <email>zhangsan@qq.com</email>
  <qq>432221111</qq>
 </contact>
 <contact id="002">
  <name>李四</name>
  <age>20</age>
  <phone>134222225555</phone>
  <email>lisi@qq.com</email>
  <qq>432222222</qq>
 </contact>
 <contactTwo>
  <name>王五</name>
  <age>32</age>
  <phone>465431341</phone>
  <emali>af@qq.com</emali>
  <qq>46164694</qq>
 </contactTwo>
 <test>测试</test>
 <test>其他用途</test>
</contactList>

文件目录如图所示:

以上就是小编为大家带来的java对xml节点属性的增删改查实现方法全部内容了,希望大家多多支持脚本之家~

相关文章

  • Java IO流—异常及捕获异常处理 try…catch…finally

    Java IO流—异常及捕获异常处理 try…catch…finally

    这篇文章主要介绍了Java IO流—异常及捕获异常处理 try…catch…finally,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • java实现Api接口加密通信方式

    java实现Api接口加密通信方式

    这篇文章主要介绍了java实现Api接口加密通信方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Java字符串拼接效率测试过程解析

    Java字符串拼接效率测试过程解析

    这篇文章主要介绍了Java字符串拼接效率测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • SpringBoot整合Sa-Token实现登录认证的示例代码

    SpringBoot整合Sa-Token实现登录认证的示例代码

    本文主要介绍了SpringBoot整合Sa-Token实现登录认证的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 深入了解Java行为型设计模式之策略模式

    深入了解Java行为型设计模式之策略模式

    策略模式属于Java-设计模式中行为模式之一,该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。本文将通过示例详细讲解这一模式,需要的可以参考一下
    2022-09-09
  • Springboot实现验证码登录

    Springboot实现验证码登录

    这篇文章主要为大家详细介绍了Springboot实现验证码登录,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 浅谈Java(SpringBoot)基于zookeeper的分布式锁实现

    浅谈Java(SpringBoot)基于zookeeper的分布式锁实现

    这篇文章主要介绍了Java(SpringBoot)基于zookeeper的分布式锁实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • maven引入mysql-connector-java包失败的解决方案

    maven引入mysql-connector-java包失败的解决方案

    这篇文章主要介绍了maven引入mysql-connector-java包失败的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 老生常谈比较排序之归并排序(递归)

    老生常谈比较排序之归并排序(递归)

    下面小编就为大家带来一篇老生常谈比较排序之归并排序(递归)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Eclipse开发JavaWeb项目配置Tomcat的方法步骤

    Eclipse开发JavaWeb项目配置Tomcat的方法步骤

    本文主要介绍了Eclipse开发JavaWeb项目配置Tomcat的方法步骤,首先介绍eclipse开发JavaWeb项目需要配置的相关环境,使用tomcat软件在本地搭建服务器,然后再在eclipse环境下配置tomcat,感兴趣的可以了解一下
    2021-08-08

最新评论