通过dom4j来对xml配置文件的增删查改;

利用@Test注解来对单个方法进行测试;

 import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.List; import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test; public class Demo2 {
String xmlPath = "book.xml"; @Test
//1.查询第一本书的书名,并输出到控制台
public void foo() throws Exception{
//创建解析器
SAXReader sax = new SAXReader(); //开始解析文档
Document dom = sax.read(xmlPath); //根元素
Element rootElement = dom.getRootElement(); //跟元素的所有子元素
List elements = rootElement.elements(); //跟元素的下一个子元素
Element element = rootElement.element("书"); //element的下一个子元素
Element element2 = element.element("书名"); //element2元素的内容
String text = element2.getText(); System.out.println(text);
} //2.给第一本书添加一个特价节点, 并修改第一本书的售价节点的内容为19.8元
@Test
public void add() throws Exception{
//创建解析器
SAXReader sax = new SAXReader(); //开始解析文档
Document dom = sax.read(xmlPath); //获取根元素
Element rootElement = dom.getRootElement(); //获取第一本书并添加特价节点和节点内容
Element bookelem = rootElement.element("书");
Element addelement = bookelem.addElement("特价");
addelement.setText("9.8元"); //写入xml文件,实时更新xml文件
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(xmlPath),"utf-8");
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(out,format);
//将java代码修改了的dom写到xml文件中
writer.write(dom);
writer.close();
} //3.删除第二本书的作者节点
@Test
public void delete() throws Exception{
//创建解析器
SAXReader sax = new SAXReader();
//解析文档
Document dom = sax.read(xmlPath);
//获取跟元素
Element rootElement = dom.getRootElement();
//获取根目录下的所有子元素
List<Element> list = rootElement.elements("书");
//获得list中的第二个元素
Element author = list.get(1);
Element auelement = author.element("作者");
//移除list下的第二个元素
author.remove(auelement); //写入xml文件,实时更新xml文件
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(xmlPath),"utf-8");
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(out,format);
//将java代码修改了的dom写到xml文件中
writer.write(dom);
writer.close(); }
}

dom4j解析xml配置文件的更多相关文章

  1. dom4j解析XML的CURD操作

    在开发JavaWeb项目中通常是利用XML配置文件来提高应用程序的访问效率,而在配置XML的同时,更多时候是对XML进行解析. 一.解析XML配置文件有两种机制: DOM和SAX的机制: DOM是将整 ...

  2. dom4j解析xml文档全面介绍

    一.dom4j介绍 dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点, ...

  3. javaweb dom4j解析xml文档

    1.什么是dom4j dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,它 ...

  4. 【java项目实战】dom4j解析xml文件,连接Oracle数据库

    简单介绍 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方.我们还是看一下官方给出的解释.例如以下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT ...

  5. 在java项目中怎样利用Dom4j解析XML文件获取数据

    在曾经的学习.net时常常会遇到利用配置文件来解决项目中一些须要常常变换的数据.比方数据库的连接字符串儿等.这个时候在读取配置文件的时候.我们一般会用到一个雷configuration,通过这个类来进 ...

  6. java中采用dom4j解析xml文件

    一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...

  7. 转:在java中使用dom4j解析xml

    JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...

  8. Dom4j解析xml

    public class Dom4jTest { // Dom4j解析xml // 因为所有的方法都需要Dom树 static Document document = null; static Ele ...

  9. 使用dom4j解析XML文档

    dom4j的包开源包,不属于JDK里面,在myeclipse中要单独导入在项目中,这里不累赘了 做这个过程,很慢,因为很多方法没用过不熟悉,自己得去查帮助文档,而且还得去试,因为没有中文版,英文翻译不 ...

随机推荐

  1. hdu 1053 Entropy (哈夫曼树)

    Entropy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  2. MFC Button控件自绘

    文章参考地址:  http://blog.csdn.net/yue7603835/article/details/6649458    VC下的界面着实难看 有时候我们不得不自己进行控件的绘制 以前 ...

  3. BZOJ_day9

    哇,一道巨大的水题害得我wa了无数次... 总结一下教训 大家一定记住(给我自己看的)  位运算 一定要加()!!! 重要的事情说三遍  位运算 一定要加()!!! 位运算 一定要加()!!! 位运算 ...

  4. 收藏一个漂亮的Flash焦点图切换

    网上闲逛的时候发现一个Flash焦点图效果,跟喜欢,然后就下载回来,收集在这里,以便以后方便取用.这个Flash使用方法也是相当简单的,如果你喜欢,也可以从这里查看源代码下载. Flash 焦点图效果 ...

  5. Mybatis LIKE模糊查询

    1.在代码中拼接好字符串后传入进来 2.使用CONCAT在xml中拼接字符串: <if test="queryParam.keyword != null"> AND b ...

  6. poj 2378 Tree Cutting 树形dp

    After Farmer John realized that Bessie had installed a "tree-shaped" network among his N ( ...

  7. tomcat内存配置及配置参数详解

    1.jvm内存管理机制: 1)堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟 ...

  8. 百度vue服务端渲染(ssr)有感

    前端各种框架工具层次不穷,日新月异,越学越混乱了快 知乎上看到了一段回复,豁然开朗的感觉. Web 2.0时代最大的思想革命本质不是前后端分离,而是把网页当作独立的应用程序(app).前后端分离只是实 ...

  9. HDFS之FileSystem

    package cn.hx.test; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; impo ...

  10. HASHMAP原理解析,不错的文章

    http://blog.csdn.net/vking_wang/article/details/14166593