创建XML文档

  XML文件是一种典型的树形文件,每个文档元素都是一个document元素的子节点。而每个子元素都是一个Element对象,对象可以向下包含。

  1 因此我们可以通过先创建元素再将元素添加到父元素中,最后将顶层元素添加到根元素中。

  2 创建完文档元素后,就可以把元素添加到document对象中,然后写入文件。

  主要使用的函数:

Element.setAttribute 为元素添加信息

Element.addContent(String,String) 为元素添加子元素内容,也可以直接添加另一个元素节点

Document.setRootElement(Element) 为文档添加根元素

XMLOutputter.output(Document,FileWriter) 将Docuemnt写入到FileWriter文件流中
  1. @SuppressWarnings("null")
  2. 2     public static void createXML() {
  3. 3         // 创建document
  4. 4         Document mydoc = new Document();
  5. 5
  6. 6         // 创建元素person1
  7. 7         Element person1 = new Element("person");
  8. 8         person1.setAttribute("id", "ID001");
  9. 9         // 添加注释
  10. 10         person1.addContent(new Comment("this is person1"));
  11. 11
  12. 12         person1.addContent(new Element("name").setText("xingoo"));
  13. 13         person1.addContent(new Element("age").setText("25"));
  14. 14         person1.addContent(new Element("sex").setText("M"));
  15. 15         // 可以嵌套添加子元素
  16. 16         Element address1 = new Element("address");
  17. 17         address1.setAttribute("zone", "province");
  18. 18         address1.addContent("LiaoNing");
  19. 19         person1.addContent(address1);
  20. 20
  21. 21         // 创建元素person2
  22. 22         Element person2 = new Element("person");
  23. 23         person2.setAttribute("id", "ID002");
  24. 24         // 添加注释
  25. 25         person2.addContent(new Comment("this is person2"));
  26. 26
  27. 27         person2.addContent(new Element("name").setText("xhalo"));
  28. 28         person2.addContent(new Element("age").setText("26"));
  29. 29         person2.addContent(new Element("sex").setText("M"));
  30. 30         // 可以嵌套添加子元素
  31. 31         Element address2 = new Element("address");
  32. 32         address2.setAttribute("zone", "province");
  33. 33         address2.addContent("JiLin");
  34. 34         person2.addContent(address2);
  35. 35
  36. 36         // 在doc中添加元素Person
  37. 37         Element info = new Element("information");
  38. 38         info.addContent(person1);
  39. 39         info.addContent(person2);
  40. 40         mydoc.setRootElement(info);
  41. 41        
  42. 42         saveXML(mydoc);
  43. 43     }
  44. saveXML()代码:
  45. 1     public static void saveXML(Document doc) {
  46. 2         // 将doc对象输出到文件
  47. 3         try {
  48. 4             // 创建xml文件输出流
  49. 5             XMLOutputter xmlopt = new XMLOutputter();
  50. 6
  51. 7             // 创建文件输出流
  52. 8             FileWriter writer = new FileWriter("person.xml");
  53. 9
  54. 10             // 指定文档格式
  55. 11             Format fm = Format.getPrettyFormat();
  56. 12             // fm.setEncoding("GB2312");
  57. 13             xmlopt.setFormat(fm);
  58. 14
  59. 15             // 将doc写入到指定的文件中
  60. 16             xmlopt.output(doc, writer);
  61. 17             writer.close();
  62. 18         } catch (Exception e) {
  63. 19             e.printStackTrace();
  64. 20         }
  65. 21     }

 执行后,刷新项目,就可以在项目下看到person.xml文件了

修改同理

删除 :

  1.     public static void removeXML() {
  2.         SAXBuilder sb = new SAXBuilder();
  3.         Document doc = null;
  4.         try {
  5.             doc = sb.build("person.xml");
  6.             Element root = doc.getRootElement();
  7.             List<Element> list = root.getChildren("person");
  8.             for (Element el : list) {
  9.                 if (el.getAttributeValue("id").equals("ID001")) {
  10.                     root.removeContent(el);
  11.                 }
  12.             }
  13.         } catch (Exception e) {
  14.             e.printStackTrace();
  15.         }
  16.         saveXML(doc);
  17.     }



jdom 插入 修改 删除的更多相关文章

  1. Hibernate 插入,修改,删除,查询语句

    /* *具体操作hibernate的类 *增加,删除,修改,按ID查询,模糊查询,查询全部 **/ public class PersonOperate { //在hibernate中所有操作都是由S ...

  2. 图文并解Word插入修改删除批注

    .插入批注 首先选择对象,比如部分文字[hd1] ,之后执行这样的操作:"插入"→"批注":插入的批注处于编辑状态,可以直接输入批注的文字即可;图解如下: .修 ...

  3. Delphi ADOQuery连接数据库的查询、插入、删除、修改

    http://blog.csdn.net/chinazhd/article/details/45047777 //查询记录 procedure TForm1.Button1Click(Sender: ...

  4. 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.数组插入.删除 ...

  5. 我的MYSQL学习心得(八) 插入 更新 删除

    我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得( ...

  6. Entity Framework 6 Recipes 2nd Edition(10-9)译 -> 在多对多关系中为插入和删除使用存储过程

    10-9. 在多对多关系中为插入和删除使用存储过程 问题 想要在一个无载荷的多对多关系中使用存储过程(存储过程只影响关系的连接表) 解决方案 假设有一个多对多关系的作者( Author)表和书籍( B ...

  7. Java 集合与队列的插入、删除在并发下的性能比较

    这两天在写一个java多线程的爬虫,以广度优先爬取网页,设置两个缓存: 一个保存已经访问过的URL:vistedUrls 一个保存没有访问过的URL:unVistedUrls 需要爬取的数据量不大,对 ...

  8. 数据结构Java实现03----单向链表的插入和删除

    文本主要内容: 链表结构 单链表代码实现 单链表的效率分析 一.链表结构: (物理存储结构上不连续,逻辑上连续:大小不固定)            概念: 链式存储结构是基于指针实现的.我们把一个数据 ...

  9. [改善Java代码]频繁插入和删除时使用LinkedList

    一.分析 前面有文章分析了列表的表里方式,也就是“读”的操作.本文将介绍表的“写”操作:即插入.删除.修改动作. 二.场景 1.插入元素 列表中我们使用最多的是ArrayList,下面看看他的插入(a ...

随机推荐

  1. informatica powercenter学习笔记(二)

    LOOKUP TRANSFORMATION的使用点评: LOOKUP基本用法不熟的话请参考下附属信息. 用法感受: 1 LOOKUP的作用跟我们以前在EXCEL的函数功能类似,就是隔表取值.优点就是用 ...

  2. c# 注册表操作,创建,删除,修改,判断节点是否存在

    用.NET下托管语言C#操作注册表,主要内容包括:注册表项的创建,打开与删除.键值的创建(设置值.修改),读取和 删除.判断注册表项是否存在.判断键值是否存在. 准备工作: 1:要操作注册表,我们必须 ...

  3. Node.js:常用工具、路由

    一.常用工具util util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. 1.util.inherits util.inherit ...

  4. MyEclipse中Ctrl+Shift+F快捷键格式化代码时不换行

    摘自: http://iteye.blog.163.com/blog/static/18630809620121166622410/ MyEclipse中Ctrl+Shift+F快捷键格式化代码时不换 ...

  5. XMPPFrameWork IOS 开发(三)登录

    原始地址:XMPPFrameWork IOS 开发(三) XMPP中常用对象们: XMPPStream:xmpp基础服务类 XMPPRoster:好友列表类 XMPPRosterCoreDataSto ...

  6. python 相似语句匹配(非机器学习)

    #coding=utf-8 import xlrd import distance from sklearn.feature_extraction.text import CountVectorize ...

  7. 微信-.NET调用JS-SDK

    注意:1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”.2. 如果发现在 Android 不能分享自定义内 ...

  8. CSS中:before和:after选择器的用法

    在线演示这次给大家带来的是对话气泡效果,主要是演示了 :before / :after 和 border 的用法,赶快来围观吧. 阅读原文:CSS中:before和:after选择器的用法

  9. Visual studio中后期生成事件命令使用

    在做项目是总要把发布后的一些dll拷贝的根网站的bin目录下,为了避免每次都需要手动拷贝可以在 项目的生成事件中写入bat命令,下面的命令只在项目使用的发布配置时执行拷贝, (在生成->配置管理 ...

  10. jQuery获取select中全部option值

    <select id="language"> <option value="">请选择</option> <optio ...