创建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. 数学图形(2.15)Spherical sinusoid球面正弦曲线

    这个曲线与之前的数学图形(2.7)sphere sine wave很相似.而且个人觉得从其公式上看sphere sine wave更应该叫做球面正弦曲线.当然从渲染的曲线图上看,它是非常明显的贴在球上 ...

  2. MYSQL三个默认库的介绍

    数据库INFORMATION_SCHEMA:提供了访问数据库元数据的方式. 元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等.有些时候用于表述该信息的其他术语包括“数据词典”和“系 ...

  3. 登入爱丽网后台(非JS绕过、非盲打、非IP欺骗)

    后台: http://wed.27.cn/marry/marryadmin/web/login.php 不难猜解到后台管理的相关页面名称(不存在的页面服务器返回404,而存在的页面会直接跳转到上面的登 ...

  4. WebUploader文件图片上传插件的使用

    最近在项目中用到了百度的文件图片上传插件WebUploader.分享给大家 需要在http://fex.baidu.com/webuploader/download.html点击打开链接下载WebUp ...

  5. SQL Server快速部署作业到多台服务器

    问题: 需要在很多的SQL Server服务器上创建相同的作业.我们可以一台一台的运行相同的脚本创建作业,但是有没有什么简便的做法呢? 解决方法: 可能很多人都没有注意到可以用多服务器环境管理SQL ...

  6. Report Studio中树提示如何使用

    环境:比如在一个销售数据里面,用户既要选择年,又要选择月,还要选择日,或者是随意选择其中的一个作为筛选条件,如果是Cube的话是可以通过拖拉不同的维度层级来实现该功能的,但是如果是FM开发的DMR模型 ...

  7. 解构赋值 和 symbol

    1.数组解构 let [a,b,c,d] = ['aa','bb',77,88] 嵌套数组解构 let [a,b,[c,d],e] = ['aa','bb',[33,44],55] 空缺变量 let ...

  8. ThreadPoolExecutor中策略的选择与工作队列的选择(java线程池)

    工作原理 1.线程池刚创建时,里面没有一个线程.任务队列是作为参数传进来的.不过,就算队列里面有任务,线程池也不会马上执行它们. 2.当调用 execute() 方法添加一个任务时,线程池会做如下判断 ...

  9. linux sort 、uniq 命令

    以文件的每行为单位,从左往右依次按ascii码进行比较 sort sort.txt #默认为升序 -u:去除重复行 sort -u sort.txt -r:降序排列 sort -r sort.txt ...

  10. 理解Load Average做好压力测试(转)

    转载自:http://www.blogjava.net/cenwenchu/archive/2008/06/30/211712.html SIP的第四期结束了,因为控制策略的丰富,早先的的压力测试结果 ...