java dom4j删除子节点_Dom4j向XML中指定位置添加、删除、修改节点——(五)

这篇博客介绍了如何使用Java的DOM4J库进行XML文档操作,包括在指定位置添加新节点、删除已有节点以及修改节点内容。通过示例代码展示了在XML文档中书节点下插入书籍描述、删除书籍描述以及更新书籍名称的过程。
摘要由CSDN通过智能技术生成

需求:

在第一本书作者后面增加描述 好书描述>

思路:获取书下面下的所有节点(一个list集合),在list集合指定位置添加一个元素(list.add(index,object)),最后写入原xml文档。

原来XML文档

Java高级书名>

武陟县作者>

200元价格>

书>

Java中级书名>

打火机作者>

2000元价格>

书>

书架>

-------------------------------------------------------指定位置添加节点-------------------------------------

Java代码:

// 在指定位置添加一个节点

@Test

public void test2() throws Exception {

SAXReader reader = new SAXReader();

Document document = reader.read(new File("src/book.xml"));

Element root = document.getRootElement();

// 获取第一个书节点

Element shu = (Element) root.elements("书").get(0);

// 获取第一个节点下的所有节点

List list = shu.elements(); //[书名,作者,价格]

// 创建一个节点

Element miaoshu = DocumentHelper.createElement("miaoshu");

miaoshu.setText("一本好书");

list.add(2,miaoshu);

// 格式化输出流,同时指定编码格式。也可以在FileOutputStream中指定。

OutputFormat format = OutputFormat.createPrettyPrint();

format.setEncoding("utf-8");

XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format);

writer.write(document);

writer.close();

}

结果:

Java高级书名>

武陟县作者>

一本好书

200元价格>

书>

Java中级书名>

打火机作者>

2000元价格>

书>

书架>

-----------------------------------------删除节点----------------------------------------------

// 删除节点

@Test

public void delete() throws Exception {

SAXReader reader = new SAXReader();

Document document = reader.read(new File("src/book.xml"));

Element root = document.getRootElement();

// 获取第一个书节点

Element shu = (Element) root.elements("书").get(0);

Element miaoshu = (Element) shu.element("miaoshu");

// 获取到miaoshu节点的父节点并删除miaoshu节点

miaoshu.getParent().remove(miaoshu);

// 格式化输出流,同时指定编码格式。也可以在FileOutputStream中指定。

OutputFormat format = OutputFormat.createPrettyPrint();

format.setEncoding("utf-8");

XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"), format);

writer.write(document);

writer.close();

}

结果:

Java高级书名>

武陟县作者>

200元价格>

书>

Java中级书名>

打火机作者>

2000元价格>

书>

书架>

-------------------------------------修改节点-------------------------------------------------

// 修改节点

@Test

public void update() throws Exception {

SAXReader reader = new SAXReader();

Document document = reader.read(new File("src/book.xml"));

Element root = document.getRootElement();

// 获取第一个书节点

Element shu = (Element) root.elements("书").get(0);

Element shuming = (Element) shu.element("书名");

// 获取到miaoshu节点的父节点并删除miaoshu节点

shuming.setText("一本烂书!!");

// 格式化输出流,同时指定编码格式。也可以在FileOutputStream中指定。

OutputFormat format = OutputFormat.createPrettyPrint();

format.setEncoding("utf-8");

XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"), format);

writer.write(document);

writer.close();

}

结果:

一本烂书!!书名>

武陟县作者>

200元价格>

书>

Java中级书名>

打火机作者>

2000元价格>

书>

书架>

asp.net 实现对xml文件的 读取,添加,删除,修改

用于修改站内xml文件 已知有一个XML文件(bookstore.xml)如下:<?xml version="1.0" encoding="gb2312" ...

dom4j解析xml中指定元素下内容

需求:XML为例如以下样式,如今我仅仅想取得timer以下的5000和60000. 解决的方法例如以下: <?xml version="1.0" encoding=&quot ...

ajax中向HTML页面中指定位置添加信息

$.ajax({  type : "POST",  beforeSend : function() {   showLoader("数据加载中...");// ...

jQuery如何追加tr到table中任意位置--向Table中指定位置添加tr或td(jQuery)

jQuery 添加新内容有以下四个方法: append() - 在被选元素的结尾插入内容 prepend() - 在被选元素的开头插入内容 after() - 在被选元素之后插入内容 before() ...

js数组指定位置添加删除

示例参考:http://www.w3school.com.cn/jsref/jsref_splice.asp

javascript数组在指定位置添加和删除元素

在JavaScript中,Array对象提供了一个强大的splice()方法,利用这个方法可以达到在数组的指定位置添加和删除元素的目的. 指定位置删除元素 要在指定位置删除元素,可以使用splice( ...

Dom4j 操作, 节点查找 添加 删除 修改 。。。xPath

转: Dom4j 操作, 节点查找 添加 删除 修改 ...xPath 2013年11月28日 10:48:59 今晚打酱油8 阅读数:8506更多 个人分类: JavaWeb   版权声明:本文为博 ...

eclipse中基于maven构建的web项目pom&period;xml中指定的jar包无法发布到tomcat中

eclipse运行maven web项目报错: 信息: Starting Servlet Engine: Apache Tomcat/7.0.57 一月 07, 2015 11:50:44 下午 or ...

python3 替换字符串中指定位置字符

大家都知道字符串在python中是不可变数据类型,那么我们如何替换字符串中指定位置的字符呢? 字符串转换列表替换并转换解决: def replace_char(string,char,index): ...

随机推荐

Session一次错误记录

///         /// 验证登录状态是否已失效        ///         /// &lt ...

struts拦截器实现原理

图1: 上1来源于Struts2官方站点,是Struts 2 的整体结构. 一个请求在Struts2框架中的处理大概分为以下几个步骤 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请 ...

自己写的SqlHelper

using System; using System.Collections.Generic; using System.Configuration; using System.Data; using ...

驱动里执行应用层代码之KeUserModeCallBack(WOW64是由三个动态库wow64&period;dll wow64win&period;dll wow64cpu&period;dll来实现)

在驱动层(ring0)里执行应用层(ring3)代码,这是个老生常谈的技术,而且方法也挺多. 这种技术的本质:其实就是想方设法在驱动层里把应用层代码弄到应用层去执行. 比如在APC异步调用中,KeIn ...

LInux下安装jdk与环境配置与Webstorm的安装

个人比较喜欢Webstorm这款软件,但是毕设要做的网站打算在Linux下做,所以就想在Linux上装个Webstorm.刚开始下载好后运行提示没有装jdk,然后apt-get install来安装还 ...

FFmpeg示例程序合集-Git批量获取脚本

此前做了一系列有关FFmpeg的示例程序,组成了,其中包含了如下项目:simplest ffmpeg player:                  最简单的 ...

C&num;中DataGridView 对XML文档的使用

窗体就只用添加一个DataGridView控件就可以了.详细解释请参照上一篇中的借鉴曲终人散博客园的文档. XML文档代码如下:test.xml <?xml version="1.0& ...

&num;161&colon; 给定n&ast;n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。 你的任务就是检测矩阵是否符合条件

试题描述 给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件. 你的任务就是检测矩阵是否符合条件,或者在仅改变一个矩阵元素的情况下能否符合条件. "改变 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值