个人博客地址:http://www.ijianmi.com/

学习本文之前请先看我的另一篇文章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节点属性的增删改查的更多相关文章

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

    package vastsum; import java.io.File; import java.io.FileWriter; import java.util.Iterator; import o ...

  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通过JDBC进行简单的增删改查(以MySQL为例)

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

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

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

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

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

  9. Java描述数据结构之链表的增删改查

    链表是一种常见的基础数据结构,它是一种线性表,但在内存中它并不是顺序存储的,它是以链式进行存储的,每一个节点里存放的是下一个节点的"指针".在Java中的数据分为引用数据类型和基础 ...

随机推荐

  1. 自定义Angular插件 - 网站用户引导

    最近由于项目进行了较大的改版,为了让用户能够适应这次新的改版,因此在系统中引入了“用户引导”功能,对于初次进入系统的用户一些简单的使用培训training.对于大多数网站来说,这是一个很常见的功能.所 ...

  2. MongoDB数据实体中的ObjectId序列化成json的一个小坑

    很多时候我们都需要对实体对象进行序列化与反序列化,而ObjectId类型,只能用mongo的驱动以bson格式来序列化,但我们对外的交互,一般是json格式. 有两种解决方案: 1.自己写一个json ...

  3. ASP.NET MVC Model验证(四)

    ASP.NET MVC Model验证(四) 前言 本篇主要讲解ModelValidatorProvider 和ModelValidator两种类型的自定义实现,前者是Model验证提供程序,而Mod ...

  4. ABP源码分析二十:ApplicationService

    IApplicationService : 空接口,起标识作用.所有实现了IApplicationService 的类都会被自动注入到容器中.同时所有IApplicationService对象都会被注 ...

  5. C#中,switch case语句中多个值匹配一个代码块的写法

    switch (num) { case 1: Response.Write("1"); break; case 2: case 3: Response.Write("2| ...

  6. Chrome调试手机页面

    新开发的网页需要在手机或是模拟机上运行测试,如果手头事件比加紧,那么可以借助 Chrome提供的手机网页预览程序进行简单调试.查看 制作的网页是否能够适合各种手机型号使用. 下面所以下如何使用Chro ...

  7. 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)

    Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...

  8. DNS报文格式(RFC1035)

    一.域名和资源记录的定义 1.Name space definitions 2.资源记录定义(RR definitions)      2.1 格式          后面分析报文的时候详细解释.   ...

  9. dicom网络通讯入门(3)

    接下来可以进行消息传递了 ,也就是dimse ,再来复习下 什么是dimse .n-set  n-create c-echo 这些都是dimse  他们都是属于一种结构的pdu 那就是tf-pdu(传 ...

  10. sql server left 和right 函数

    参考文章:微信公众号文章 一直对sql中的left和right有误解,一直以为它是这样的. 执行这样一句: ) leftNum ) rightNum 出现的结果是这样的: 而我心中这样认为: 我认为只 ...