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. ...
随机推荐
- 单点登录(九)-----遇到问题-----FileNotFoundException: class path resource-UsernamePasswordWrapperAuthenticatio
运行cas server 项目时 报错 FileNotFoundException: class path resource-UsernamePasswordWrapperAuthenticatio ...
- (转)解决dubbox-demo-provider.xml报错的问题:提示Failed to read schema document
背景:在eclipse项目中,经常会遇到xml文件提示找不到.xsd文件的情况.很有必要弄清xsd文件的加载过程! 1 解决过程 dubbo-demo-provider导入eclipse后dubbox ...
- Jenkins(三)---Jenkins初始配置和插件配置
从Jenkins(二)中可以知道 jenkins 的工作目录为/opt/jenkins [很重要!!!][很重要!!!][很重要!!!]在配置此目录以前,将这两台的主机进行配置为ssh root用户无 ...
- 四、java面向对象编程_2
目录 六.对象的创建和使用 七.this关键字 八.static关键字 九.package和import语句 十.类的继承 十一.访问控制 十二.方法的重写 十三.super关键字 十四.继承中的构造 ...
- 编译geth报错的解决方法 make: *** [geth] 错误 1
在centos下安装了go1.9.1版本,编译go-ethereum时报错: [root@localhost go-ethereum]# make gethbuild/env.sh go run bu ...
- Java质数求解
质数概念 质数,又称素数,指在一个大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数(也可定义为只有1和本身两个因数的数).最小的素数是2,也是素数中唯一的偶数:其他素数都是奇数.质数有 ...
- openstack指南
1.openstack官网 http://www.openstack.org/ 2.openstack源码地址 https://github.com/openstack 3.openstack的pac ...
- 5 Kafka 应用问题经验积累
16.Kafka 配置文件同步 为了给kafka的进程添加GC日志信息,方便在以后重启的时候,加入GC日志: 修改bin/kafka-server-start.sh: export KAFKA_OPT ...
- noVNC连接CentOS,以Web方式交付VNC远程连接
什么是noVNC? noVNC 是一个 HTML5 VNC 客户端,采用 HTML 5 WebSockets, Canvas 和 JavaScript 实现,noVNC 被普遍用在各大云计算.虚拟机控 ...
- [转载]PayPal为什么从Java迁移到Node.js,性能提高一倍,文件代码减少44%
http://ourjs.com/detail/52a914f0127c763203000008 大家都知道PayPal是另一家迁移到Node.js平台的大型公司,Jeff Harrell的这篇博文 ...