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. ...
随机推荐
- 洛谷 P2022 有趣的数 解题报告
P2022 有趣的数 题目描述 让我们来考虑1到N的正整数集合.让我们把集合中的元素按照字典序排列,例如当N=11时,其顺序应该为:1,10,11,2,3,4,5,6,7,8,9. 定义K在N个数中的 ...
- 【poj2411】 Mondriaan's Dream
http://poj.org/problem?id=2411 (题目链接) 题意 一个$n*m$的网格,用$1*2$的方块填满有多少种方案. Solution 轮廓线dp板子.按格dp,对上方和左方的 ...
- digitalworld.local: MERCY靶机入侵
0x01 前言 MERCY是一个致力于PWK课程安全的靶机系统.MERCY是一款游戏名称,与易受攻击的靶机名称无关.本次实验是攻击目标靶机获取root权限并读系统目录中的proof.txt信息 靶机的 ...
- Weblogic CVE-2018-3191远程代码命令执行漏洞复现
0x00 简介 北京时间10月17日,Oracle官方发布的10月关键补充更新CPU(重要补丁更新)中修复了一个高危的WebLogic远程代码执行漏洞(CVE-2018-3191).该漏洞允许未经 ...
- bzoj 3190 赛车 半平面交
直接写的裸的半平面交,已经有点背不过模板了... 这题卡精度,要用long double ,esp设1e-20... #include<iostream> #include<cstd ...
- 【题解】CF1154
A Description 有三个正整数 \(a,~b,~c\),现在给定 \(x_1~=~a + b,~x_2~=~a + c, x_3~=~b + c, ~x_4~=~a + b + c\),请求 ...
- [收藏转载链接]Opencv部分
转载自-柳如风-http://www.cnblogs.com/rongfangliu/p/opencvlink.html [收藏夹整理]OpenCV部分 OpenCV中文论坛 OpenCV论坛 o ...
- vi的一些使用技巧
1.vi 编辑器中跳到文件的第一行:键盘按下 小写 gg vi 编辑器跳到文件最后一行:键盘按 shift + g (等于G) 跳转到当前行的第一个字符按0,跳转到当前行的最后一个字符按shift ...
- 第一天:简单工厂模式与UML类图
何为简单工厂模式: 通过专门定义一个类,来负责创建其他类的实例,这些其它类通常具有共同的父类. 简单工厂模式的UML类图: 简单工厂模式中包含的角色和相应的职责如下: ...
- radioButton drawable selector
1.实现radioButton drawable selector更改图片,在drawable文件夹下,新建selector文件, <selector xmlns:android="h ...