java对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());
- }
- }
以下是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节点属性的增删改查
学习本文之前请先看我的另一篇文章JAVA对XML节点的操作可以对XML操作有更好的了解. package vastsum; import java.io.File; import java.io.Fi ...
- 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连接MySQL数据库增删改查通用方法
版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...
- Java通过JDBC进行简单的增删改查(以MySQL为例)
Java通过JDBC进行简单的增删改查(以MySQL为例) 目录: 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JD ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- python之类与对象属性的增删改查
类属性与对象属性的增删改查 类属性的增删改查 class School: """ 文档 """ Teacher = "老王&quo ...
随机推荐
- Ha1cyon-CTF 芜湖
感觉自己还是很欠缺的,尤其是C++的逆向,对stl的不熟悉,直接误导我静态分析了...然后这种题和平常不同的是没有任何混淆和flag验证,需要的是耐心的分析,在过程中,找到线索,这题还考了base64 ...
- Elasticsearch-04-master选举
3.2 master选举机制 3.2.1 选举算法 1)bully算法 核心思想 假定所有的节点都具有一个可以比较的ID,通过比较这个ID来选举master 流程说明 节点向所有比自己ID大的节点发送 ...
- 第四章 python的turtle库的运用
我们可以尝试用python的自带turtle库绘制一条蟒蛇 首先我们设计一下蟒蛇的基本形状 我们先把这段蟒蛇绘制的实例代码贴出来,各位可以在自己的本地运行一下看看效果,然后我们再继续分析代码: 1 # ...
- 「AGC034E」 Complete Compress
「AGC034E」 Complete Compress 显然可以枚举根. 然后把某两棵棋子同时往深度浅的方向提,即对不存在祖先关系的两个棋子进行操作. 如果能到达那么就更新答案. 问题转化为如何判定能 ...
- python05篇 json和函数
一.json json就是一个字符串,只不过是所有语言能解析这个字符串.1.1 把python的数据类型转为json import json d = {'name': 'xiaohei', 'cars ...
- Github Copilot 结合python的使用
之前提交的github copilot技术预览版申请,今天收到准入邮件,于是安上试一试这个准备把我送去电子厂上班的copy a lot ? 官网及申请地址:https://copilot.github ...
- C++ 标准模板库(STL)——迭代器(iterators)的用法及理解
C++ STL中迭代器(iterators)用于遍历对象集合的元素.由于容器大小随着插入删除等操作动态改变,无法像静态数组那样获取数组长度然后遍历容器里的所有元素:这时就需要迭代器,每次从容器内第一个 ...
- C++11标准特性的一些理解
(1)auto 和 decltype 关键字 在C++11之前,auto关键字用来指定存储期(C++98中指的是自动生命周期).在新标准中,它的功能变为类型推断.C++11引入auto关键词与之前C语 ...
- JAVA基础之JDK、JRE、JVM关系
什么是JRE和JDK JDK(Java Development Kit Java开发工具包) JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE.所以安装了JDK,就不 ...
- Java基础00-抽象类20
1. 抽象类 1.1 抽象类概述 代码示例:没有{}大括号的方法就是一个没有方法体的方法,要把它定义成抽象方法,就要给它加一个abstract关键字,而类中有抽象方法,该类也必须是一个抽象类,所以给类 ...