XML文档的简易增删查改
dom4j解析
一、利用dom4j操作元素节点
1.查询第一本书的书名,并输出到控制台
2.给第一本书添加一个特价节点, 并修改第一本书的售价节点的内容为19.8元
3.删除第二本书的作者节点
二、利用dom4j操作属性节点
1.给第一本书添加一个属性,如:出版社="清华大学出版社"
2.在控制台上打印输出第一本书的出版社属性的值, 并更新属性的值为“人民出版社”
3.删除第一本书的出版社属性
-------------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<书架>
<书>
<书名>数据结构</书名>
<作者>严蔚敏</作者>
<售价>29.00元</售价>
</书>
<书>
<书名>高等数学</书名>
<作者>同济大学数学系</作者>
<售价>55.00元</售价>
</书>
</书架>
-------------------------------------------
代码实现如下:
import java.io.FileWriter;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class DomTest {
/*
* 一、利用dom4j操作元素节点
1.查询第一本书的书名,并输出到控制台
2.给第一本书添加一个特价节点, 并修改第一本书的售价节点的内容为19.8元
3.删除第二本书的作者节点
二、利用dom4j操作属性节点
1.给第一本书添加一个属性,如:出版社="清华大学出版社"
2.在控制台上打印输出第一本书的出版社属性的值, 并更新属性的值为“人民出版社”
3.删除第一本书的出版社属性
*/
@SuppressWarnings("deprecation")
public static void main(String[] args) throws Exception {
//创建一个输入流,使xml文件成为一个document,先建立一个对象reader,然后
//用这个对象去调用方法
SAXReader reader = new SAXReader();
//读取xml文件
Document doc = reader.read("src/1.xml");
//查询第一本书的名字,并输出到控制台
//先获取根目录
Element root =doc.getRootElement();
//迭代获取下面的元素(子目录)
Iterator it1 = root.elementIterator("书");
//获取二级子目录
Element e1 = (Element) it1.next();
Iterator it2 = e1.elementIterator("书名");
Element e2 = (Element) it2.next();
System.out.println(e2.getName()+ "---" + e2.getText());
//以上内容完成了查的工作
//2.给第一本书添加一个特价节点, 并修改第一本书的售价节点的内容为19.8元
//创建一个书下面的新的节点为“特价”
Element e3 = e1.addElement("特价");
Iterator it4 = e1.elementIterator("售价");
Element e6 =(Element) it4.next();
e6.setText("19.8元");
//3.删除第二本书的作者节点
Element e4 = (Element) it1.next();
Iterator it3 = e4.elementIterator("作者");
Element e5 = (Element) it3.next();
boolean b = e4.remove(e5);
System.out.println(b);
//给第一本书添加一个属性,如:出版社="清华大学出版社"
//设置后返回的是该元素,也就是e7和e1是同一个
Element e7 = e1.addAttribute("出版社", "清华大学出版社");
//在控制台上打印输出第一本书的出版社属性的值, 并更新属性的值为“人民出版社”
Attribute a = e1.attribute("出版社");
System.out.println(a.getValue());
a.setValue("人民 出版社");
System.out.println(a.getValue());
//删除第一本书的出版社属性
e1.remove(a);
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
XMLWriter writer = new XMLWriter(new FileWriter("src/2.xml"),format);
writer.write(doc);
writer.close();
}
}
XML文档的简易增删查改的更多相关文章
- 使用dom解析器对xml文档内容进行增删查改
直接添代码: XML文档名称(one.xml) <?xml version="1.0" encoding="UTF-8" standalone=" ...
- Java对XML文档的增删改查
JAVA增删改查XML文件 最近总是需要进行xml的相关操作. 不免的要进行xml的读取修改等,于是上网搜索,加上自己的小改动,整合了下xml的常用操作. 读取XML配置文件 首先我们需要通过Do ...
- 【JAVA与DOM4J实现对XML文档的CRUD操作】
一.简介 1.网上下载DOM4J 1.6.1压缩包,解压开之后,发现几个目录和一个jar文件,jar文件是必须的文件其它目录: docs目录:帮助文档的目录,单击index.html: Quick s ...
- Java高级特性 第13节 解析XML文档(1) - DOM和XPath技术
一.使用DOM解析XML文档 DOM的全称是Document Object Model,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树 ...
- jaxp实现对xml文档的增,删,改,查操作(附源码)浅析
jaxp,属于javase中的一部分.是对xml进行解析的一个工具类: 既然说到这里,还是讲全一点,讲讲上面说到的xml的解析技术. xml的一个标记型文档. 在html的层级结构中,它会在内存中分配 ...
- XMLHelper类 源码(XML文档帮助类,静态方法,实现对XML文档的创建,及节点和属性的增、删、改、查)
以下是代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sy ...
- 使用DOM进行xml文档的crud(增删改查)操作<操作详解>
很多朋友对DOM有感冒,这里我花了一些时间写了一个小小的教程,这个能看懂,会操作了,我相信基于DOM的其它API(如JDOM,DOM4J等)一般不会有什么问题. 后附java代码,也可以下载(可点击这 ...
- java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查
一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = D ...
- java:Hibernate框架1(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态,增删查改)
1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件 准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cf ...
随机推荐
- vmware中centos6.7系统图形化安装Oracle-无法打开RUNINSTALLER
如果解压正确 unzip linux……1/2 unzip linux……2/2 给了权限 chown -R Oracle:oinstall /home/database/ 在oracle用户下,运行 ...
- iOS进阶之TCP代理鉴权过程
这段时间接触了网络代理,而自己的任务是完成TCP和UDP的网络代理,所以在这里写些自己的理解吧. 这篇文章先介绍一下TCP代理的鉴权过程(采用的是用户名和密码鉴权),下一篇文章再介绍UDP代理的鉴权过 ...
- Openssl 升级操作
转自:http://www.cnblogs.com/lzcys8868/p/9235538.html 首先我觉得没事就用绿盟扫漏洞的公司,就是闲的蛋疼,傻逼!不少服务器使用nginx,如果openss ...
- Servlet CDI example analysis
上下文和依赖注入(CDI)使您的对象能够自动为它们提供依赖项,而不是创建它们或将它们作为参数接收.CDI还为您管理这些依赖项的生命周期. 例如,考虑以下servlet: @WebServlet(&qu ...
- redis搭建主从复用-读写分离
1:安装redis5.0.3 2:解压到/usr/local/redis 3:在/opt/redis/下创建三个文件夹 data,存放数据的目录 log,存放日志的目录 conf,存放配置的目录 co ...
- 小程序云开发--云函数上传文件或图片 base64
云函数开发遇到的问题 在微信云开发环境当中,普通的用户并没有往云存储内写入文件的权限 所以普通用户想要使用wx.cloud.uploadFile显然是不现实的 但是我们同时也知道,云函数是后台服务端, ...
- python-文字转语音-pyttsx3
pyttsx3 python 文字转语音库,支持英文,中文,可以调节语速.语调等. 安装 pip install pyttsx3 示例 import pyttsx3 teacher = pyttsx3 ...
- Vue-admin工作整理(十二):Vuex-插件(持久化存储)
Vuex可以支持插件形式,来处理指定业务,比如:持久化存储的插件(当每次刷新浏览器的时候store里面的参数都会被清除,因为它是存在内存中的,而不是存在本地的,有时候我们希望将一些东西存在本地) 插件 ...
- react native 项目使用 expo 二维码扫描失败
今天学习react native,需使用expo在移动端进行调试. npm start 运行项目后,使用expo扫描二维码,始终没有反应.于是决定采用这个方法: 连上手机打开usb调试后,按下‘a’, ...
- day3——两数之和
// 小白一名,0算法基础,艰难尝试算法题中,若您发现本文中错误, 或有其他见解,往不吝赐教,感激不尽,拜谢. 领扣 第2题 今日算法 题干 //给定一个整数数组和一个目标值,找出数组中和为目标值的两 ...