使用dom4工具:增删改xml文件(七)
package dom4j_write;
import java.io.File;
import java.io.FileOutputStream;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* 修改xml文件:
* 添加:文档 标签 属性
* 修改:属性值 文本内容
* 删除:标签 属性
*
* @author mzy
*
*/
public class Demo03 {
public static void main(String[] args) throws Exception{
/**
* 添加:文档 标签 属性
*/
// 1.1 添加空文档
Document doc = DocumentHelper.createDocument();
// -------------------------------
// 真正的操作
Element conListElem = doc.addElement("contact-list"); // 但是根标签不能添加多个
// 一层一层的加
Element conElem = conListElem.addElement("contact");
conElem.addElement("name");
// 添加属性
conElem.addAttribute("id", "001");
conElem.addAttribute("name", "mzy");
// -------------------------------
// 1.2 把文档写出到xml文件中
FileOutputStream out = new FileOutputStream("E:/user/eclipse_workStation/XML/src/dom4j_write/target03.xml");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
XMLWriter writer = new XMLWriter(out, format);
writer.write(doc);
/**
* 修改:属性值 文本内容
* 将contact的属性值id=001,修改为id=003
* 在name标签中添加名字
*/
doc = new SAXReader().read(new File("E:/user/eclipse_workStation/XML/src/dom4j_write/target03.xml"));
// 修改属性值:method_1.先得到属性对象,再修改属性对象的值
conElem = doc.getRootElement().element("contact");
Attribute idAttr = conElem.attribute("id");
idAttr.setValue("003");
// 修改属性值:method_2.因为属性名不能重复,重复增加即覆盖
// conElem.addAttribute("id", "003");
// 修改文本
Element nameElem = doc.getRootElement().element("contact").element("name");
nameElem.setText("王五");
// 把文档写出到xml文件中:必须重置IO流,不然会接着上次结束的位置写
out = new FileOutputStream("E:/user/eclipse_workStation/XML/src/dom4j_write/target03.xml");
format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
/**
* 删除:标签 属性内容
* 将contact的属性值id=001,修改为id=003
*/
// 1.1 删除标签
conElem = doc.getRootElement().element("contact");
// conElem.detach(); // 删除当前的标签
// conElem.getParent().remove(conElem); // 获取父标签再删除子标签
// 1.2 删除属性
Attribute attr = doc.getRootElement().element("contact").attribute("id");
attr.detach();
writer = new XMLWriter(out, format);
writer.write(doc);
}
}
xml格式如下:
<?xml version="1.0" encoding="utf-8"?>
<contact-list>
<contact name="eric">
<name>王五</name>
</contact>
</contact-list>
使用dom4工具:增删改xml文件(七)的更多相关文章
- 60分钟课程: 用egg.js实现增删改查,文件上传和restfulApi, webpack react es6 (一)
今天开始我将写nodejs框架egg.js, react 实现的增删改查,文件上传等常用的b/s场景,这个将分3部分来写. 会让你在60分钟内快速 入口并应用~ 你应该用es6, node,或是ph ...
- IDEA 开发工具在POM.XML文件中增加依赖
在POM.XML 中使用快捷键 ALT+INSERT 选择第一个,输入关键字即可 选择版本,确认,ok
- MYSQL 之 JDBC(九):增删改查(七)DAO的补充和重构
DAO重构后的代码 package com.litian.jdbc; import org.apache.commons.beanutils.BeanUtils; import java.sql.*; ...
- XML为数据库进行增删改查(实例)
//增删改查文件 package xml2; import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.Fi ...
- iOS开发-plist文件增删改查
plist第一次看到这个后缀名文件的时候感觉怪怪的,不过接触久了也就习以为常了,plist是Property List的简称可以理解成属性列表文件,主要用来存储串行化后的对象的文件.扩展名为.plis ...
- 使用idea对XML的增删改查
XML:是一种可扩展标记性的语言,与java语言无关,它可以自定义标签. 1.首先需要到导入Dom4j架包,与自己所时候的ide关联 2.编写自己的xml文件,入上图所示(里面的所有元素及元素中的属性 ...
- Linux文件增删改
Linux目录/文件增删改 创建文件 (1) # touch <文件名称> (2) 花括号展开 touch /root/{1,3,9}.txt touch /root/{0..100}. ...
- node 通过mongoose实现 mongodb的增删改
node 通过mongoose实现 mongodb的增删改 新建文件test.js 内容如下: var mongoose = require('mongoose') , Schema = mo ...
- day38 mycql 初识概念,库(增删改查),表(增删改)以及表字段(增删改查),插入更新操作
在Navicat中把已经生成的表逆向成模型 数据库上,右键-逆向数据库到模型 ego笔记: 增删改查 文件夹(库) 增 create database day43 charset utf8; 改 al ...
随机推荐
- 前端开发入门到进阶第三集【js进行url解析】
https://www.cnblogs.com/yuanzhiguo/p/8241644.html
- Java多线程(上)
Java多线程 程序.进程和线程 一.程序 程序是存储在磁盘上, 包含可执行机器指令和数据的静态实体. 即进程或者任务是处于活动状态的计算机程序. 二.进程 进程是资源(CPU.内存等)分配的基本单位 ...
- 构建前端第2篇之--ESLint 配置
张艳涛 写于2021-1-19 报错: http://eslint.org/docs/rules/space-before-function-paren Missing space before fu ...
- OOP-Klass模型 简略
class Model { public static int a = 1; public int b; public Model(int b) { this.b = b; } } public st ...
- Laravel Ignition 2.5.1 代码执行漏洞(CVE-2021-3129)
影响范围 Laravel 框架 < 8.4.3 facade ignition 组件 < 2.5.2 poc git clone https://github.com/simonlee-h ...
- 解决 OnDropFiles 可能无响应的问题【转】
大多数程序都有接收拖放文件的功能,即是用鼠标把文件拖放到程序窗口上方,符合格式的文件就会自动被程序打开.最近自己对编写的程序增加了一个拖放文件的功能,在 Windows XP.Windows Serv ...
- 表单验证插件jquery-validation以及案例
表单验证插件jquery-validation以及案例 1,获取并引入: (1)获取:官网:https://jqueryvalidation.org/ [home]->[files]->[ ...
- 蓝凌OA前台任意文件读取漏洞利用
近期CNVD爆出漏洞编号:CNVD-2021-28277,首次公开日期为2021-04-15,蓝凌oa存在多个漏洞,攻击者可利用该漏洞获取服务器控制权.今天挑选一个蓝凌OA前台任意文件读取漏洞进行分析 ...
- springboot+javafx所有依赖一起打包
执行顺序: 1.使用清理插件:maven-clean-plugin:2.5执行清理删除已有target目录(版本2.5): 2.使用资源插件:maven-resources-plugin:2.6执行 ...
- [源码解析] 机器学习参数服务器 Paracel (2)--------SSP控制协议实现
[源码解析] 机器学习参数服务器 Paracel (2)-----SSP实现 目录 [源码解析] 机器学习参数服务器 Paracel (2)-----SSP实现 0x00 摘要 0x01 背景知识 1 ...