java基础73 dom4j修改xml里面的内容(网页知识)
1、DOM4J对XML文件进行增删改操作
实现代码
package com.shore.code; import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException; 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;
import org.junit.Test; /**
* @author DSHORE / 2018-9-3
*
*/
/*
* 修改xml内容
* 增加:文档,标签,属性
* 修改:属性值,文本
* 删除:标签,属性
* */
public class Demo3 {
/*
* 增加:文档,标签,属性
* */
@Test
public void test1() throws IOException{
/*
*创建文档
* */
Document doc=DocumentHelper.createDocument();
Element rootelem=doc.addElement("contactList");
Element contactElem=rootelem.addElement("contact");
Element nameEle = contactElem.addElement("name");
nameEle.addEntity("name", "张三");//添加实体内容
Element ageEle = contactElem.addElement("age");
ageEle.addComment("张三");//添加注释
/*
* 增加属性
* */
contactElem.addAttribute("id","001");
contactElem.addAttribute("name","zhangsan");
//1.创建输出流通道
FileOutputStream out=new FileOutputStream("F:/contact.xml");
//设置写入contact.xml文件的内容/标签格式(俗称:美观格式)
OutputFormat format=OutputFormat.createPrettyPrint();
//设置编码格式
format.setEncoding("utf-8");
//2.创建写出的对象,把修改后的Document对象写出到xml中
XMLWriter write=new XMLWriter(out,format);
//3.写出对象
write.write(doc);
//4.关闭资源
write.close();
}
/*
* 修改:属性值,文本
* */
@Test
public void test2() throws Exception{
//1.创建并读取一个Document对象
Document doc=new SAXReader().read(new File("./src/contact.xml"));
/*
* 方案一:修改属性值 1.得到标签对象 2.得到属性对象 3.修改属性值
* */
//2.得到标签对象
Element contatcElem=doc.getRootElement().element("contact");
//3.得到属性对象
Attribute idAttr=contatcElem.attribute("id");
//4.修改属性值
idAttr.setValue("005");
/*
* 方案二:修改属性值
* */
//2.得到标签对象
Element contatcElem2=doc.getRootElement().element("contact");
//3.通过增加同名的属性的方法,修改属性值
contatcElem2.addAttribute("id","006");
/*
* 修改文本: 1.得到标签 2.修改文本
* */
Element nameElement=doc.getRootElement().element("contact").element("name");
nameElement.setText("王五");
//1.创建输出流通道
FileOutputStream out=new FileOutputStream("F:/contact.xml");
OutputFormat format=OutputFormat.createPrettyPrint();//设置contact.xml文件格式(俗称:美观格式)
format.setEncoding("utf-8");//设置编码格式
//2.创建写出的对象
XMLWriter write=new XMLWriter(out,format);
//3.写出对象
write.write(doc);
//4.关闭资源
write.close();
}
/*
* 删除:标签,属性
* */
@Test
public void test3() throws Exception{
Document doc=new SAXReader().read(new File("./src/contact.xml"));
/*
* 删除标签: 1.得到标签 2.删除标签对象
* */
//得到标签
Element ageElement=doc.getRootElement().element("contact").element("age");
//删除标签对象
//ageElement.detach();
ageElement.getParent().remove(ageElement);//和上面的效果是一样的
/*
* 2.删除属性 1.得到属性对象 2.删除属性
* */
//得到属性对象
//得到第二个contact标签
Element contactElement=(Element)doc.getRootElement().elements().get(1);//get()里面填0代表第一个contact标签,填1代表第二contact标签。相当于数组的下标
//得到属性对象
Attribute idAttribute=contactElement.attribute("id");
//删除属性
idAttribute.detach();
//idAttribute.getParent().remove(idAttribute);//和上面的效果是一样的
FileOutputStream out=new FileOutputStream("F:/contact.xml");
OutputFormat format=OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
XMLWriter write=new XMLWriter(out,format);
write.write(doc);
write.close();
}
}
源文档(contact.xml)
<?xml version="1.0" encoding="utf-8"?>
<contactList>
<contact id="001" sex="男">
<name>张三</name>
<age>18</age>
<phone>15779593710</phone>
<email>872855221@qq.com</email>
<qq>872855221</qq>
<abc>
<a> </a>
</abc>
</contact>
<contact id="038">
<name>李四</name>
<age>20</age>
<phone>1314580</phone>
<email>12580@qq.com</email>
<qq>832144529</qq>
</contact>
</contactList>
效果图

|
原创作者:DSHORE 作者主页:http://www.cnblogs.com/dshore123/ 原文出自:https://www.cnblogs.com/dshore123/p/9561848.html 欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!) |
java基础73 dom4j修改xml里面的内容(网页知识)的更多相关文章
- Java基础82 jsp中的EL表达式(网页知识)
1.EL表达式的作用 EL表达式的作用:向浏览器输出域对象中的变量值或者表达式计算结果.语法:${变量或者表达式} 注: Jsp的核心语法:jsp的表达式<%= %>和jsp的脚本< ...
- java基础81 jsp的内置对象(网页知识)
1.什么是内置对象? 在jsp开发中,会频繁使用到一些对象,如:HttpSession,ServletContext,HttpServletRequest. 如果每次使用这些对象时,都要去创 ...
- java基础65 JavaScript中的Window对象(网页知识)
1.javaScript组成部分 1.EMCAScript(基本语法) 2.BOM(Browser Object Model):浏览器对象模型 浏览器对象模型中的浏览器的各 ...
- java基础60 JavaScript字符串转换成数字(网页知识)
1.字符串转换成数字 <!doctype html> <html> <head> <meta charset="utf-8"> &l ...
- Java xml 操作(Dom4J修改xml + xPath技术 + SAX解析 + XML约束)
1 XML基础 1)XML的作用 1.1 作为软件配置文件 1.2 作为小型的"数据库" 2)XML语法(由w3c组织规定的) 标签: 标签名不能以数字开头,中间不能有空格,区分大 ...
- 用dom4j修改xml(增加修改节点)
用dom4j修改xml(增加修改节点) 博客分类: Java XMLJavaMyeclipseServlet 使用dom4j修改解析xml,xml文件的位置是配置在xml.properties文件中 ...
- 转:在java中使用dom4j解析xml
JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...
- 使用dom4j修改XML格式的字符串
XML格式 <data> <ryzd> <record> <western> <record> <diagnoses> < ...
- Day 26:Dom4j修改xml
Dom4j:Writing a document to a file import java.io.File; import java.io.FileOutputStream; import org. ...
随机推荐
- Luogu 1020 导弹拦截(动态规划,最长不下降子序列,二分,STL运用,贪心,单调队列)
Luogu 1020 导弹拦截(动态规划,最长不下降子序列,二分,STL运用,贪心,单调队列) Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺 ...
- Java利用poi生成word(包含插入图片,动态表格,行合并)
转(小改): Java利用poi生成word(包含插入图片,动态表格,行合并) 2018年12月20日 09:06:51 wjw_11093010 阅读数:70 Java利用poi生成word(包含插 ...
- 虚拟机中在centos6.7环境下安装eclipse
采用的是在线安装的方式,所以省去了很多配置环境变量的步骤,经过以下5步. 1, yum install eclipse 2, 安装xmanager -> windows下远程eclipse可 ...
- WEB下面路径的问题
web 中的 / 到底代表什么? 绝对路径-以Web站点根目录为参考基础的目录路径.之所以称为绝对,意指当所有网页引用同一个文件时,所使用的路径都是一样的.相对路径-以引用文件之网页所在位置为参考 ...
- Lvs+Keepalived实现MySQL高可用
LVS+Keepalived+MySQL高可用配置 本文所有配置前提是已实现MySQL双主备份(MySQL双主) 安装前的准备: VIP:192.168.0.201 Keepalived: Keepa ...
- 转:苹果Xcode帮助文档阅读指南
一直想写这么一个东西,长期以来我发现很多初学者的问题在于不掌握学习的方法,所以,Xcode那么好的SDK文档摆在那里,对他们也起不到什么太大的作用.从论坛.微博等等地方看到的初学者提出的问题,也暴露出 ...
- 科学计算三维可视化---Mlab基础(鼠标选取交互操作)
一:鼠标选取介绍 二:选取红色小球分析 相关方法:科学计算三维可视化---Mlab基础(基于Numpy数组的绘图函数) 1.小球场景初始化建立 import numpy as np from maya ...
- C++程序运行时间测定
From:http://www.cnblogs.com/killerlegend/p/3877703.html Author:KillerLegend Date:2014.7.30 此处程序的测试时间 ...
- 第八届蓝桥杯c/c++省赛题目整理
第一题 标题: 购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞. 这不,XX大促销又来了!老板夫人开出了长长的购物单,都 ...
- android 自定义TODO
1.找到setting -> editor -> TODO 2. 正则的写法参考以前的就可以 这样我们就可以自己写一个todo了 3.TODO过滤: 4. 然后选择要展示的TODO 这里就 ...