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. ...
随机推荐
- Linux内核设计第六周学习总结 分析Linux内核创建一个新进程的过程
陈巧然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验过程 登陆实验楼 ...
- CentOS7搭建elasticsearch集群
准备三个节点,系统版本为CentOS7.3. 11.0.10.18 es01 11.0.10.19 es02 11.0.10.20 es03 1.安装java环境 # yum install -y j ...
- 解题:NOI 2007 社交网络
题面 先跑一边Floyd乘法原理统计任意两点间最短路数目,然后再枚举一次按照题意即可求出答案,会写那道JSOI2007就会这个 #include<cstdio> #include<c ...
- BZOJ 1497 [NOI2006]最大获利
1497: [NOI2006]最大获利 Description 新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战.THU集团旗下的CS&T通讯公司在新一代通讯技术血战的前 ...
- RabbitMQ 相关概念
RabbitMQ 整体上是一个生产者与消费者模型,主要负责接收.存储和转发消息.可以把消息传递的过程想象成:当你讲一个包裹送到邮局,邮局会暂存并最终将邮件通过邮递员送到收件人的手上,RabbitMQ ...
- linux(ubuntu) 安装 node.js
其实几个月之前我已经介绍过使用window版的nvm——wnvm了 1.先安装nvm 日常开发安装node通常会用nvm来安装,因为nvm可以帮我们管理好node的版本 我们通过git来把nvm下载到 ...
- linux服务器上修改oracle数据库的字符集
linux服务器上以dba身份进入:sqlplus / as sysdba; 依次执行以下命令:shutdown immediate; startup mount; alter system enab ...
- IIS错误整理收集【持续更新】
一.HTTP 错误 403.14 - Forbidden HTTP 错误 403.14 - Forbidden,Web 服务器被配置为不列出此目录的内容. 解决方案:修改程序池.NET Framewo ...
- Jenkins git 的配置及问题解决
背景:最近项目需要 Jenkins 集成git,着手记录遇到的问题及解决方式 一.搭建Jenkins环境步骤这里(略) 二.安装Jenkins插件(系统管理-->插件管理-->可选插件)选 ...
- Machine Learning Trick of the Day (1): Replica Trick
Machine Learning Trick of the Day (1): Replica Trick 'Tricks' of all sorts are used throughout machi ...