创建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. MSSQL 触发器 暂停 和 启动

    开启关闭触发器 禁用: ALTER TABLE member DISABLE TRIGGER trig1 GO 恢复: ALTER TABLE member ENABLE TRIGGER trig1 ...

  2. microsoft visual c++与microsoft visual net 版本对应关系

    7.1 -> 2003 8.0 -> 2005 9.0 -> 2008 10.0 -> 2010 11.0 -> 2012 12.0 -> 2013 14.0 -& ...

  3. Transform数据权限浅析1之mdl语句批量加载权限

    Cognos建模工具除了Framework之外,还有一个Transform,两者的最大区别就是在于Framework是通过结构直连关系数据库的,数据根据数据仓库的变化而变化,而Transform是生产 ...

  4. Android 代码实现来电拦截

    为了更好地理解这个Demo,我先向大家介绍一下需求与功能. 需求: 每天都会有很多无聊的电话,比如推销商品等,占用我们大量时间不说,有时候还会打乱我们的思路,扰乱我们的正常生活.所以实现一个对某些号码 ...

  5. 矩阵的frobenius范数及其求偏导法则

    例子: http://www.mathchina.net/dvbbs/dispbbs.asp?boardid=4&Id=3673

  6. JUC同步器框架AbstractQueuedSynchronizer源码图文分析

    JUC同步器框架AbstractQueuedSynchronizer源码图文分析 前提 Doug Lea大神在编写JUC(java.util.concurrent)包的时候引入了java.util.c ...

  7. android基础-Apk打包过程(了解)

    此文来源于<Android软件安全与逆向分析> 一.打包资料文件,生成R.java文件. 二.处理aidl文件,生成相应的Java文件. 三.编译工程源代码,生成相应的class文件. 四 ...

  8. Tomcat 关闭时报错

    最近tomcat走普通的关闭方式无法正常关闭,会报一些Error,用的是Tomcat7,据说是Tomcat7在关闭的时候加了一些检查线程泄漏内存泄露的东西 总结起来,在我项目中有这么几个原因会导致关闭 ...

  9. zookeeper 入门讲解实例 转

    转  http://www.blogjava.net/BucketLi/archive/2010/12/21/341268.html zookeeper使用和原理探究(一) zookeeper介绍zo ...

  10. 虚拟机VMware下CentOS6.5安装教程图文详解(VMnet8)

    (写在最前面:如果你下载的iso文件 CentOS-6.*-x86_64-minimal.iso 系列,那么需要这么安装:https://blog.csdn.net/lixianlin/article ...