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. ...
随机推荐
- JavaScript演示下Singleton设计模式
单例模式的基本结构: MyNamespace.Singleton = function() { return {}; }(); 比如: MyNamespace.Singleton = (functio ...
- 21天实战caffe笔记_第二天
1 传统机器学习 传统机器学习:通过人工设计特征提取器,将原始数据转化为合适的中间表示形式或者特征向量,利用学习系统(通常为分类器)可以对输入模式进行检测或者分类.流程如下: 传统机器学习的局限在于需 ...
- 图像处理之CSC性能优化(源码)
1 CSC基本实现 根据前一篇CSC转换的文档了解到,RGB与YUV的变换公式如下: YCbCr(256 级别) 可以从8位 RGB 直接计算,计算公式如下: Y = 0.299 R + 0.587 ...
- c/c++基本数据类型转换
If either operand is of type long double, the other operand is converted to type long double. If the ...
- libcurl代码示例
http://note.youdao.com/noteshare?id=e60a679d1731c870ff45e403de81a2c0
- NATS_02:NATS消息通信模型
消息通信模型 NATS的消息通信是这样的:应用程序的数据被编码为一条消息,并通过发布者发送出去:订阅者接收到消息,进行解码,再处理.订阅者处理NATS消息可以是同步的或异步的. * 异步处理 异步处 ...
- Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)
Java基础-IO流对象之数据流(DataOutputStream与DataInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据流特点 操作基本数据类型 ...
- Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)
Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符缓冲流 字符缓冲流根据流的 ...
- 科学计算三维可视化---TVTK入门(数据加载)
一:数据加载 大多数可视化应用的数据并非是在TVTK库中构建的,很多都是通过接口读取外部数据文件 (一)使用vtkSTLReader来读取外部文件 .stl 文件是在计算机图形应用系统中,用于表示三角 ...
- CSS3 box-sizing:border-box的好处
无论如何改动border,margin与padding的值,都不会导致box总尺寸发生变化.