java对xml节点属性的增删改查
个人博客地址: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节点属性的增删改查的更多相关文章
- java对xml节点属性的增删改查实现方法
package vastsum; import java.io.File; import java.io.FileWriter; import java.util.Iterator; import o ...
- JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删改查),事件
JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删 ...
- Java对XML文档的增删改查
JAVA增删改查XML文件 最近总是需要进行xml的相关操作. 不免的要进行xml的读取修改等,于是上网搜索,加上自己的小改动,整合了下xml的常用操作. 读取XML配置文件 首先我们需要通过Do ...
- 用dom4j解析xml文件并执行增删改查操作
转自:https://www.aliyun.com/jiaocheng/1339446.html xml文件: <?xml version="1.0" encoding=&q ...
- AD 域服务简介(三)- Java 对 AD 域用户的增删改查操作
博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 Java 获取 AD 域用户, ...
- Java通过JDBC进行简单的增删改查(以MySQL为例)
Java通过JDBC进行简单的增删改查(以MySQL为例) 目录: 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JD ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- python之类与对象属性的增删改查
类属性与对象属性的增删改查 类属性的增删改查 class School: """ 文档 """ Teacher = "老王&quo ...
- Java描述数据结构之链表的增删改查
链表是一种常见的基础数据结构,它是一种线性表,但在内存中它并不是顺序存储的,它是以链式进行存储的,每一个节点里存放的是下一个节点的"指针".在Java中的数据分为引用数据类型和基础 ...
随机推荐
- Google Java编程库Guava介绍
本系列想介绍下Java下开源的优秀编程库--Guava[ˈgwɑːvə].它包含了Google在Java项目中使用一些核心库,包含集合(Collections),缓存(Caching),并发编程库(C ...
- ValueInjecter----最好用的OOM(以微信消息转对象举例)
使用数据实体的好处我这里就不多说了,但大家享受这些好处的时候,难免也对那些琐碎的赋值代码感到厌烦,基于此,我认为掌握一个oom的使用,还是很有必要的. 这种类型的工具有很多,比如automapper, ...
- ABP(现代ASP.NET样板开发框架)系列之22、ABP展现层——导航栏设置
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之22.ABP展现层——导航栏设置 ABP是“ASP.NET Boilerplate Project (ASP.NE ...
- 如何隐藏DIV对象
DIV对象在网页里面,相当于一个容器,在其内部,可以显示文字.图片.视频控件等等. 以下的教程,和大家一起来学习,如何隐藏DIV对象. 这必须使用CSS来控制,才能达到隐藏的目的,那么,就得使用CSS ...
- 计算照片的面积(WPF篇)
昨天,老周突发其想地给大伙伴们说了一下UWP应用中计算照片面积的玩法,而且老周也表示会提供WPF版本的示例.所以,今天就给大伙们补上吧. WPF是集成在.net框架中,属于.net的一部分,千万不要跟 ...
- ITTC数据挖掘平台介绍(五) 数据导入导出向导和报告生成
一. 前言 经过了一个多月的努力,软件系统又添加了不少新功能.这些功能包括非常实用的数据导入导出,对触摸进行优化的画布和画笔工具,以及对一些智能分析的报告生成模块等.进一步加强了平台系统级的功能. 马 ...
- AngularJS 脏检查深入分析
写在开头 关于Angular脏检查,之前没有仔细学习,只是旁听道说,Angular 会定时的进行周期性数据检查,将前台和后台数据进行比较,所以非常损耗性能. 这是大错而特错的.我甚至在新浪前端面试的时 ...
- 深入netty源码解析之一数据结构
Netty是一个异步事件驱动的网络应用框架,它适用于高性能协议的服务端和客户端的快速开发和维护.其架构如下所示: 其核心分为三部分, 最低层为支持零拷贝功能的自定义Byte buffer: 中间层为通 ...
- vertical-align浅析
一直以来都搞不懂vertical-align,它适用于什么元素,它的对齐规则是什么样的.索性查了下w3c相关规范,发现行高和基线对齐的规范说明里有如下内容: This section is being ...
- linux内核数据结构之kfifo
1.前言 最近项目中用到一个环形缓冲区(ring buffer),代码是由linux内核的kfifo改过来的.缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度.例如一个进程A产 ...