jdom 插入 修改 删除
创建XML文档
XML文件是一种典型的树形文件,每个文档元素都是一个document元素的子节点。而每个子元素都是一个Element对象,对象可以向下包含。
1 因此我们可以通过先创建元素再将元素添加到父元素中,最后将顶层元素添加到根元素中。
2 创建完文档元素后,就可以把元素添加到document对象中,然后写入文件。
主要使用的函数:
Element.setAttribute 为元素添加信息 Element.addContent(String,String) 为元素添加子元素内容,也可以直接添加另一个元素节点 Document.setRootElement(Element) 为文档添加根元素 XMLOutputter.output(Document,FileWriter) 将Docuemnt写入到FileWriter文件流中
@SuppressWarnings("null")2 public static void createXML() {3 // 创建document4 Document mydoc = new Document();56 // 创建元素person17 Element person1 = new Element("person");8 person1.setAttribute("id", "ID001");9 // 添加注释10 person1.addContent(new Comment("this is person1"));1112 person1.addContent(new Element("name").setText("xingoo"));13 person1.addContent(new Element("age").setText("25"));14 person1.addContent(new Element("sex").setText("M"));15 // 可以嵌套添加子元素16 Element address1 = new Element("address");17 address1.setAttribute("zone", "province");18 address1.addContent("LiaoNing");19 person1.addContent(address1);2021 // 创建元素person222 Element person2 = new Element("person");23 person2.setAttribute("id", "ID002");24 // 添加注释25 person2.addContent(new Comment("this is person2"));2627 person2.addContent(new Element("name").setText("xhalo"));28 person2.addContent(new Element("age").setText("26"));29 person2.addContent(new Element("sex").setText("M"));30 // 可以嵌套添加子元素31 Element address2 = new Element("address");32 address2.setAttribute("zone", "province");33 address2.addContent("JiLin");34 person2.addContent(address2);3536 // 在doc中添加元素Person37 Element info = new Element("information");38 info.addContent(person1);39 info.addContent(person2);40 mydoc.setRootElement(info);4142 saveXML(mydoc);43 }saveXML()代码:1 public static void saveXML(Document doc) {2 // 将doc对象输出到文件3 try {4 // 创建xml文件输出流5 XMLOutputter xmlopt = new XMLOutputter();67 // 创建文件输出流8 FileWriter writer = new FileWriter("person.xml");910 // 指定文档格式11 Format fm = Format.getPrettyFormat();12 // fm.setEncoding("GB2312");13 xmlopt.setFormat(fm);1415 // 将doc写入到指定的文件中16 xmlopt.output(doc, writer);17 writer.close();18 } catch (Exception e) {19 e.printStackTrace();20 }21 }
执行后,刷新项目,就可以在项目下看到person.xml文件了
修改同理
删除 :
public static void removeXML() {SAXBuilder sb = new SAXBuilder();Document doc = null;try {doc = sb.build("person.xml");Element root = doc.getRootElement();List<Element> list = root.getChildren("person");for (Element el : list) {if (el.getAttributeValue("id").equals("ID001")) {root.removeContent(el);}}} catch (Exception e) {e.printStackTrace();}saveXML(doc);}
jdom 插入 修改 删除的更多相关文章
- Hibernate 插入,修改,删除,查询语句
/* *具体操作hibernate的类 *增加,删除,修改,按ID查询,模糊查询,查询全部 **/ public class PersonOperate { //在hibernate中所有操作都是由S ...
- 图文并解Word插入修改删除批注
.插入批注 首先选择对象,比如部分文字[hd1] ,之后执行这样的操作:"插入"→"批注":插入的批注处于编辑状态,可以直接输入批注的文字即可;图解如下: .修 ...
- Delphi ADOQuery连接数据库的查询、插入、删除、修改
http://blog.csdn.net/chinazhd/article/details/45047777 //查询记录 procedure TForm1.Button1Click(Sender: ...
- javascript 常见数组操作( 1、数组整体元素修改 2、 数组筛选 3、jquery 元素转数组 4、获取两个数组中相同部分或者不同部分 5、数组去重并倒序排序 6、数组排序 7、数组截取slice 8、数组插入、删除splice(需明确位置) 9、数组遍历 10、jQuery根据元素值删除数组元素的方)
主要内容: 1.数组整体元素修改 2. 数组筛选 3.jquery 元素转数组 4.获取两个数组中相同部分或者不同部分 5.数组去重并倒序排序 6.数组排序 7.数组截取slice 8.数组插入.删除 ...
- 我的MYSQL学习心得(八) 插入 更新 删除
我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得( ...
- Entity Framework 6 Recipes 2nd Edition(10-9)译 -> 在多对多关系中为插入和删除使用存储过程
10-9. 在多对多关系中为插入和删除使用存储过程 问题 想要在一个无载荷的多对多关系中使用存储过程(存储过程只影响关系的连接表) 解决方案 假设有一个多对多关系的作者( Author)表和书籍( B ...
- Java 集合与队列的插入、删除在并发下的性能比较
这两天在写一个java多线程的爬虫,以广度优先爬取网页,设置两个缓存: 一个保存已经访问过的URL:vistedUrls 一个保存没有访问过的URL:unVistedUrls 需要爬取的数据量不大,对 ...
- 数据结构Java实现03----单向链表的插入和删除
文本主要内容: 链表结构 单链表代码实现 单链表的效率分析 一.链表结构: (物理存储结构上不连续,逻辑上连续:大小不固定) 概念: 链式存储结构是基于指针实现的.我们把一个数据 ...
- [改善Java代码]频繁插入和删除时使用LinkedList
一.分析 前面有文章分析了列表的表里方式,也就是“读”的操作.本文将介绍表的“写”操作:即插入.删除.修改动作. 二.场景 1.插入元素 列表中我们使用最多的是ArrayList,下面看看他的插入(a ...
随机推荐
- 如何更改postgresql的最大连接数
改文件 postgresql.conf 里的 #max_connections=32 为 max_connections=1024 以及另外相应修改 share_buffer 参数.
- 13个 ASP.NET MVC 的扩展
ASP.NET MVC设计的主要原则之一是可扩展性.处理管线(processing pipeline)上的所有(或大多数)东西都是可替换的.因此,如果您不喜欢ASP.NET MVC所使用的约定(或缺乏 ...
- 复习原生ajax
function ajax(url, fnSucc, fnFaild) { //1.创建 if(window.XMLHttpRequest) { var oAjax=new XMLHttpReques ...
- 【云计算】使用privilege权限对Docker内核参数进行定制
探讨Docker容器中修改系统变量的方法 探讨完Docker对共享内存状态持久化的支持状况后,我将遗留产品build到一个pre-production image中,测试启动是否OK.很显然,我过于乐 ...
- CarbonData编译与安装
原文连接 http://xiguada.org/carbondata_compile/ CarbonData是啥? CarbonData is a fully indexed columnar and ...
- PHP免费的空间www.hostinger.co.uk
免费的PHP空间:http://hostinger.co.uk hostinger是一个免费的PHP空间,不仅100%完全免费而且还没有广告,提供2G物理空间和100GMysql空间 可以一键安装Wo ...
- 《iOS用户体验》总结与思考-改动版
假设转载此文.请注明出处:http://blog.csdn.net/paulery2012/article/details/25157347,谢谢. 前言: 本文是在阅读<ios用户体验> ...
- nested exception is java.lang.IllegalStateException: Cannot forward after response has been committed
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is ...
- windows合并文件夹窗口
windows合并文件夹窗口 CreateTime--2017年7月26日16:28:14Author:Marydon 右击任务栏-->属性-->任务栏按钮选项-->选择“始终合 ...
- [Done]ibatis/mybatis: java.lang.NoSuchMethodException
异常描述: Caused by: org.apache.ibatis.reflection.ReflectionException: Error instantiating interface cn. ...