Jdom的api很好用,有人说比SAX或是DOM好用多了。虽然没用过那两个东西,但是还是觉得用Jdom操作XML很方便。

值得注意的是,在web应用的时候,不光要在工程里面引入开发包,而且还要在webinfo/lib下面部署一遍。要不然会出现部署时报java.lang.NoClassDefFoundError: org.jdom.Content

的错误。

对于一个文件的操作,无外乎就是读,写,删三种操作。SAXBuilder,Document ,Element 是操作的核心。其中,Element封装了一些节点操作(比如说获得/修改节点内容,获得/修改节点属性等等)。在生成Document对象的时候,需要传入FileInputStream实例。将XML文件导入到内存中变成Document对象。在操作的时候要显得到root节点,因为整个XML文档是个树形结构。

FileInputStream fi = new FileInputStream(“文件路径”);

SAXBuilder saxBuiler = new SAXBuilder();

Document doc = saxBuiler.build(fi);

Element root = doc.getRootElement();

List leaves = root.getChildren ();

短短的5句话就将需要操作的XML文档从硬盘里读出来了,根节点挂到了(Element)root上面,所有的第一层的叶子都挂在(List)leaves里面了。每一个节点(包括root节点)都是Element类型的,因此获得/修改节点内容,获得/修改节点属性等等都可以通过相应的API函数如:

getAttributue,setAttributue,getText去操作。

当操作完之后可以通过另一系列操作:

//initialize a new xml out putter objects and set its format

//as compact

XMLOutputter xmlOutPutter=new XMLOutputter();

xmlOutPutter.setFormat (Format.getPrettyFormat ());

FileOutputStream fileOutputStream=new FileOutputStream(“文件路径”);

xmlOutPutter.output(doc,fileOutputStream);

也是这么几句可以复用的语句就将硬盘里的XML文件更新了。

使用jdom.jar心得小结相关推荐

  1. from __future__ import absolute_import用法心得小结

    from __future__ import absolute_import用法心得小结 这是一个在py2.x中导入3.x的导入特性的语句, 是为了区分出绝对导入和相对导入. 在一般的Python学习 ...

  2. 回归分析什么时候取对数_技术派|SPSS数据分析心得小结及心得分享!必备收藏...

    作者:徐定德 来源:经管之家,欢迎转载,欢迎分享. 学习数据分析之spss分析工具,可真的不是一般的功夫,真的要很认真和很细心才能做得好spss.下面我来和大家分享一下关于SPSS数据分析心得小结,希 ...

  3. 计算机专业教师理论培训小结,教师计算机培训心得小结

    教师计算机培训心得小结 一.感受教育新观念,充实新理论. 上海市教育科学研究院职成教所的雷正光教授的<就业为导向的职教课程发展观>的报告,让我久久难忘.中国职教学会学术委员会委员蒋乃平的& ...

  4. 微服务架构实践心得小结

    微服务架构实践心得小结 来源:彗星计划 简介 微服务架构 微服务架构则是由一组微服务组成的架构模式.每个微服务都是一个可独立部署的完整系统.一组微服务组成微服务层(注意这里的服务层不同于monolit ...

  5. java 反射的弊端_java反射机制的一些学习心得小结

    概述 之前在了解Spring的类加载机制的时候,了解了java的反射机制.但是,我对反射理解一直不深.也一直有点疑惑:Spring为什么利用反射创建对象?直接new对象和依靠反射创建对象有什么区别?什 ...

  6. 本周ACM总结以及最近ACM心得小结

    总算交上作业了,亲爱的博客一周未见总算要来写我亲爱的博客了~ 还是和往常一样先说点这周看到的印象深点的例题或者给过我小灵感小启发的题 先从开始简单点的 并查集和环说起: 我在看题解是看到说,并查集很重 ...

  7. oracle10g优化器默认,Oracle10g数据库优化实用心得小结

    [IT168 服务器学院]很多的时侯,做Oracle DBA的我们,当应用管理员向我们通告现在应用很慢.数据库很慢的时侯,我们到数据库时做几个示例的Select也发现同样的问题时,有些时侯我们会无从下 ...

  8. onvif学习笔记8:最近写的一个ONVIF客户端的心得小结

    最近,利用业余时间编写一个简单的ONVIF客户端MFC程序,这里记录一下过程. 语言选择 在之前调查过,有用QT实现的,有用python实现的,虽然正在学python,无奈才看了3天的书,没自信去搞. ...

  9. 菜鸟对APP界面设计的一些心得小结

    1. 前言 当我看着我以前做的一些app界面,我意识到我应该把我的界面设计能力水平再提升一个,因为实在是丑啊!贴一些以前的设计: 现在看来,是不能看的了.我主要是做需求设计,后面也有一些美工的工作,我 ...

最新文章

  1. 大数据和人工智能的关系,超全解析
  2. nginx 配置文件nginx.conf结构
  3. java gridlayout 设置列宽_java 利用GridBagLayout布局时,如何设置单列列宽?
  4. 【前端】前端笔试题 [1]
  5. 物体运动到一个点停止_运用SolidWorks运动仿真来做的最速降线及其验证,来看看我的办法...
  6. 【Java】五种常见排序之-----------冒泡排序
  7. javafx2_JavaFX 2 GameTutorial第1部分
  8. java隐藏与覆盖_java中方法的隐藏和覆盖问题?
  9. Pyotrch —— 优化器Optimizer(一)
  10. mysql 同步 有log_MySQL之主从同步
  11. Activiti的ProcessEngine的基本配置
  12. Git 学习笔记--git 查看某个文件的修改历史
  13. 论文赏析[EACL17]K-best Iterative Viterbi Parsing(K-best迭代维特比句法分析)
  14. tcpdump抓取无效TCP标志数据包表达式
  15. Hololens Holographic Remoting
  16. 机器学习可解释性之shap模块的使用——基础用法(一)
  17. 【最新Unity3D—Particle System粒子系统】最新Unity2017.2018.2019.2020均适用且超详细
  18. 2篇SCI二区+3篇一类论文认定A档博士!享110万房补!直接副教授、甚至教授待遇,30万科启
  19. 运行Android Studio,一直提示:Error running app: Instant Run requires 'Tools | Android | Enable ADB integrat
  20. 信用卡智能还款是什么,靠不靠谱?

热门文章

  1. linux中查看lvm的名称,关于Linux中LVM的使用总结
  2. 废旧光盘手工小制作_[创意手工]废旧光碟手工制作变废为宝
  3. c++结构体定义和使用_【C语言更新】结构体的定义及使用
  4. python字符串出栈方法_python字符串常用方法
  5. 【c语言】蓝桥杯基础练习 特殊回文数
  6. iOS: NSTimer的循环引用(解决)
  7. SpringBoot使用AOP
  8. linux/windows nginx安装
  9. Oracle 12c 多租户 CDB 与 PDB之 shared undo 与 Local undo 切换
  10. GCC 警告选项 -Werror