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. }

以下是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对xml节点属性的增删改查实现方法的更多相关文章

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

    学习本文之前请先看我的另一篇文章JAVA对XML节点的操作可以对XML操作有更好的了解. package vastsum; import java.io.File; import java.io.Fi ...

  2. JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删改查),事件

    JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删 ...

  3. Java对XML文档的增删改查

    JAVA增删改查XML文件   最近总是需要进行xml的相关操作. 不免的要进行xml的读取修改等,于是上网搜索,加上自己的小改动,整合了下xml的常用操作. 读取XML配置文件 首先我们需要通过Do ...

  4. 用dom4j解析xml文件并执行增删改查操作

    转自:https://www.aliyun.com/jiaocheng/1339446.html xml文件: <?xml version="1.0" encoding=&q ...

  5. AD 域服务简介(三)- Java 对 AD 域用户的增删改查操作

    博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 Java 获取 AD 域用户, ...

  6. Java连接MySQL数据库增删改查通用方法

    版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...

  7. Java通过JDBC进行简单的增删改查(以MySQL为例)

    Java通过JDBC进行简单的增删改查(以MySQL为例) 目录: 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JD ...

  8. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  9. python之类与对象属性的增删改查

    类属性与对象属性的增删改查 类属性的增删改查 class School: """ 文档 """ Teacher = "老王&quo ...

随机推荐

  1. Ha1cyon-CTF 芜湖

    感觉自己还是很欠缺的,尤其是C++的逆向,对stl的不熟悉,直接误导我静态分析了...然后这种题和平常不同的是没有任何混淆和flag验证,需要的是耐心的分析,在过程中,找到线索,这题还考了base64 ...

  2. Elasticsearch-04-master选举

    3.2 master选举机制 3.2.1 选举算法 1)bully算法 核心思想 假定所有的节点都具有一个可以比较的ID,通过比较这个ID来选举master 流程说明 节点向所有比自己ID大的节点发送 ...

  3. 第四章 python的turtle库的运用

    我们可以尝试用python的自带turtle库绘制一条蟒蛇 首先我们设计一下蟒蛇的基本形状 我们先把这段蟒蛇绘制的实例代码贴出来,各位可以在自己的本地运行一下看看效果,然后我们再继续分析代码: 1 # ...

  4. 「AGC034E」 Complete Compress

    「AGC034E」 Complete Compress 显然可以枚举根. 然后把某两棵棋子同时往深度浅的方向提,即对不存在祖先关系的两个棋子进行操作. 如果能到达那么就更新答案. 问题转化为如何判定能 ...

  5. python05篇 json和函数

    一.json json就是一个字符串,只不过是所有语言能解析这个字符串.1.1 把python的数据类型转为json import json d = {'name': 'xiaohei', 'cars ...

  6. Github Copilot 结合python的使用

    之前提交的github copilot技术预览版申请,今天收到准入邮件,于是安上试一试这个准备把我送去电子厂上班的copy a lot ? 官网及申请地址:https://copilot.github ...

  7. C++ 标准模板库(STL)——迭代器(iterators)的用法及理解

    C++ STL中迭代器(iterators)用于遍历对象集合的元素.由于容器大小随着插入删除等操作动态改变,无法像静态数组那样获取数组长度然后遍历容器里的所有元素:这时就需要迭代器,每次从容器内第一个 ...

  8. C++11标准特性的一些理解

    (1)auto 和 decltype 关键字 在C++11之前,auto关键字用来指定存储期(C++98中指的是自动生命周期).在新标准中,它的功能变为类型推断.C++11引入auto关键词与之前C语 ...

  9. JAVA基础之JDK、JRE、JVM关系

    什么是JRE和JDK JDK(Java Development Kit Java开发工具包) JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE.所以安装了JDK,就不 ...

  10. Java基础00-抽象类20

    1. 抽象类 1.1 抽象类概述 代码示例:没有{}大括号的方法就是一个没有方法体的方法,要把它定义成抽象方法,就要给它加一个abstract关键字,而类中有抽象方法,该类也必须是一个抽象类,所以给类 ...