package cn.itheima.dom4j;
import java.io.FileWriter;
importjava.io.IOException;
importjava.util.List;
importorg.dom4j.Document;
importorg.dom4j.DocumentHelper;
importorg.dom4j.Element;
importorg.dom4j.io.OutputFormat;
importorg.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;
public class Demo3 {
//增加元素
@Test
publicvoid add() throws Exception {
SAXReaderread = new SAXReader();
Documentdom = read.read("book.xml");
//在第一本书增加<特价>
ElementbookEle = dom.getRootElement().element("书");
//用DocumentHelper可以创建元素,并设置标签体为10.0元
Elementpri2Ele = DocumentHelper.createElement("特价");
pri2Ele.setText("10.0元");
bookEle.add(pri2Ele);
ListbookList = dom.getRootElement().elements();
//dem4j获取标签的时候帮我们排除了空白标签
ElementbookEle = (Element) bookList.get(0);
StringbookName = bookEle.element("书名").getText();
System.out.println(bookName);
//修改元素标签体
Element pri2Ele = dom.getRootElement().element("书").element("特价");
pri2Ele.setText("9.9元");
//删除标签
Element bookEle = dom.getRootElement().element("书");
Elementpri2Ele = bookEle.element("特价");
bookEle.remove(pri2Ele);
//添加属性
Element bookEle = dom.getRootElement().element("书");
bookEle.addAttribute("出版社", "人民日报");
//更新XML文件
//XMLWriter默认是UTF-8的,所以必须重设输出编码
OutputFormatformat =OutputFormat.createPrettyPrint();
format.setEncoding("gb2312");
XMLWriterwriter = new XMLWriter(new FileWriter("book.xml"),format);
writer.write(dom);
writer.close();
}
附:利用dom4j中的DocumentHelper类创建xml文件
@Test
publicvoid creatDocument() throws Exception{
Documentdom = DocumentHelper.createDocument();
Elementroot= dom.addElement("书架");
Elementbook1 = root.addElement("书").addAttribute("出版社", "中信出版社").addAttribute("编号", "110");
book1.addElement("作者").addText("");
book1.addElement("书名").addText("货币战争");
book1.addElement("价格").addText("32.0元");
Elementbook2 = root.addElement("书").addAttribute("出版社", "人民出版社").addAttribute("编号", "111");
book2.addElement("作者").addText("柴静");
book2.addElement("书名").addText("遇见");
book2.addElement("价格").addText("38.0元");
//将输入格式设置gb2312编码格式
OutputFormatformat =OutputFormat.createPrettyPrint();
format.setEncoding("gb2312");
XMLWriterwriter = new XMLWriter(new FileWriter("book1.xml"),format);
writer.write(dom);
writer.close();
}
}
分享到:
相关推荐
黑马程序员_hibernate框架开发2016版讲义和笔记资料_day1_day2_day3_day4 包含4天的教学文档
黑马12期 day73-EasyUI笔记,一个月前学的,整理不易
黑马程序员hibernate框架开发2016版视频day1-day4源码笔记
黑马程序员-JavaEE 57期-day14-ElasticStack学习之Elasticsearch进阶代码、讲义和资料
1. 看懂技术算的论(理论理) 2. 论和代码对应起来(代码) 3. 知常算的代码实现式(算实现)
使用dom解析xml文件,可以获取到省市区
黑马day_01自己跟写笔记
NULL 博文链接:https://840198532-qq-com.iteye.com/blog/1490905
传智博客-黑马-2017-Python就业班-完整版视频-附带课件和资料
黑马安卓基础 总共8天教程。有文档,用到的工具软件,jar包,笔记,图解,源码+注释。视频太大放不上来。以下为今日教学内容,仅供参考。 14_android下的junit测试.avi 15_android下的数据持久化,保存数据到rom文件....
2.有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。 3.异步随机生成各种类型的客户,生成各类型用户的概率比例为: VIP客户:普通客户:快速客户 = 1 :6 :3。 4....
NULL 博文链接:https://840198532-qq-com.iteye.com/blog/1490901
黑马程序员Spring框架2016版资料_day2黑马程序员Spring框架2016版资料_day2黑马程序员Spring框架2016版资料_day2
黑马程序员3天快速入门python机器学习
2021贺岁大数据入门spark3.0入门到精通资源简介: 本课程中使用官方在2020年9月8日发布的Spark3.0系列最新稳定版:Spark3.0.1。共课程包含9个章节:Spark环境搭建,SparkCore,SparkStreaming,SparkSQL,...
黑马程序员-JavaEE 57期-day15-房源数据抓取以及实现房源搜索
NULL 博文链接:https://840198532-qq-com.iteye.com/blog/1490899
2018年黑马的SpringBoot结合Shiro的视频教程,有需要的可以下载。我也是看的这个。
NULL 博文链接:https://840198532-qq-com.iteye.com/blog/1490705