JDOM提供了非常灵活的方式操作XML文件,使用JDOM非常简单而且代码简洁可读性强。前面我们学习了如何使用JDOM解析XML文件,本节介绍如何使用JDOM修改XML文件内容。
在这个教程中,我们准备对下面的XML文件进行修改:
employees.xml

<?xml version="1.0" encoding="UTF-8"?>
<Employees xmlns="http://www.journaldev.com/employees"><Employee id="1"><age>25</age><name>Pankaj</name><gender>Male</gender><role>Java Developer</role></Employee><Employee id="2"><age>34</age><name>Mona</name><gender>Female</gender><role>Manager</role></Employee><Employee id="3"><age>45</age><name>Dave</name><gender>Male</gender><role>Support</role></Employee>
</Employees>

我们将改变xml中每个Employee元素:
1.修改所有name元素,使它的内容全部变成大写。
2.在gender(性别)为Male(男)的id属性值后追加M,gender(性别)为Female(女) 的id属性值后追加F。
3.删除gender元素。
4.为每个Employee元素增加salary(薪水)子元素,默认值为1000。
下面是程序代码:
JDOMXMLEditor.java

package com.journaldev.xml.jdom;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.Namespace;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;public class JDOMXMLEditor {public static void main(String[] args) throws JDOMException, IOException {final Namespace ns = Namespace.getNamespace("http://www.journaldev.com/employees");//Get the JDOM documentorg.jdom2.Document doc = useSAXParser("employees.xml");//Get list of Employee elementElement rootElement = doc.getRootElement();List<Element> listEmpElement = rootElement.getChildren("Employee", ns);//loop through to edit every Employee elementfor (Element empElement : listEmpElement) {//change the name to BLOCK lettersString name = empElement.getChildText("name", ns);if (name != null)empElement.getChild("name", ns).setText(name.toUpperCase());//edit the ID attribute based on GenderString gender = empElement.getChildText("gender", ns);if (gender != null && gender.equalsIgnoreCase("female")) {String id = empElement.getAttributeValue("id");empElement.getAttribute("id").setValue(id + "F");} else {String id = empElement.getAttributeValue("id");empElement.getAttribute("id").setValue(id + "M");}//remove gender element as it's not needed anymoreempElement.removeChild("gender", ns);//add salary element with default value to every employeeempElement.addContent(new Element("salary", ns).setText("1000"));}//document is processed and edited successfully, lets save it in new fileXMLOutputter xmlOutputter = new XMLOutputter(Format.getPrettyFormat());//output xml to console for debugging//xmlOutputter.output(doc, System.out);xmlOutputter.output(doc, new FileOutputStream("employees_new.xml"));}//Get JDOM document from SAX Parserprivate static org.jdom2.Document useSAXParser(String fileName) throws JDOMException,IOException {SAXBuilder saxBuilder = new SAXBuilder();return saxBuilder.build(new File(fileName));}}

需要注意的是上面代码使用命名空间获取所有元素,运行程序输出XML文件内容:
employees_new.xml

<?xml version="1.0" encoding="UTF-8"?>
<Employees xmlns="http://www.journaldev.com/employees"><Employee id="1M"><age>25</age><name>PANKAJ</name><role>Java Developer</role><salary>1000</salary></Employee><Employee id="2F"><age>34</age><name>MONA</name><role>Manager</role><salary>1000</salary></Employee><Employee id="3M"><age>45</age><name>DAVE</name><role>Support</role><salary>1000</salary></Employee>
</Employees>

JavaXml教程(七)使用JDOM修改XML文件内容相关推荐

  1. 2020-10-17修改xml文件内容

    修改xml文件内容 用文本编辑器如editplus应该就可以打开进行修改,保存或另存为即可

  2. JavaXml教程(三)使用DOM方式修改XML文件内容

    DOM解析方式也可用于修改XML数据,我们可以使用它完成新增元素.删除元素.修改元素值.修改元素属性等操作. 我们的XML文件,内容如下: employee.xml <?xml version= ...

  3. java中修改xml文件内容_修改所有xml文件中的某些内容

    我的需求是:将所有项目的pom.xml中的ip地址替换 package com.company; import org.dom4j.Document; import org.dom4j.Documen ...

  4. 用SAX实现修改xml文件内容

    背景 在久#工作,N#P#资产管理系统,jmx文件(公司自定义)对应Hibernate的实体类,jmx文件实际上就是一个xml文件.每次新建一个实体类(对NP资产系统而言,就是新建一个jmx文件),都 ...

  5. jdom解析xml文件_JDOM编辑XML文件示例

    jdom解析xml文件 JDOM provides very neat way to manipulate XML files, using JDOM is very easy and the cod ...

  6. 【java】jdom解析xml文件

    java中有四种分别解析xml文件.分别是,DOM,SAX,DOM4J,JDOM四种.我第一篇就介绍用Jdom解析XML.本人觉得这四种学习其中一种即可.其余三中解析思想差不了多少.况且这四种介绍优缺 ...

  7. java xml中的冒号_Java jdom解析xml文件带冒号的属性

    Java jdom解析xml文件带冒号的属性 如果xml文件解析带了冒号的属性,一般都是要特别处理,这里是命名空间,N年前遇到过一次忘记记录,后来也忘了,这次再记录下. 解决了,记录下,分享给大家,百 ...

  8. Java 操纵XML之修改XML文件

    Java 操纵XML之修改XML文件 一.JAVA DOM PARSER DOM interfaces The DOM defines several Java interfaces. Here ar ...

  9. python处理xml文件_Python解析并修改XML文件

    XML 本质上只是一种数据格式,它的本意并不是管理数据,因此,在 XML 应用中,数据的管理仍然要借助数据库,尤其是当数据量很大.性能要求很高的时候. XML数据库具有以下优势: XML数据库能够对半 ...

最新文章

  1. CentOS6:安装JDK
  2. 基于Xcode安装CocoaPods报错
  3. 基础数据仓库环境搭建(二) Hadoop的环境搭建
  4. 「 每日一练,快乐水题 」258. 各位相加
  5. 汽车拼图游戏 - 汽车积木拼图游戏
  6. Java线程与Linux内核线程的映射关系
  7. python一个类有几个实例对象_Python为单个对象/类创建多个实例
  8. Storm概念学习系列之并行度与如何提高storm的并行度
  9. python中正确的赋值语句_在Python中使用赋值表达式时,如何完成赋值语句“x=y:=f(x)”?...
  10. 图像金字塔——实现图像融合
  11. 从薛定谔方程到K-S方程
  12. php mysql加入购物车_php 实现简单加入购物车(1)
  13. 上海车牌拍卖突破7.5万元
  14. 最新版本maven引发的血案
  15. React.Component
  16. YOLOv5实现目标识别全流程【超级详细!】
  17. ZooKeeper的节点类型有哪些?
  18. STM32之中断的使用
  19. 【u-boot】u-boot-2016.09 make编译过程分析(二)
  20. 大数据离线流程(小练习)

热门文章

  1. STM32中HAL_Delay函数的改写
  2. 全世界最强的算法平台codeforces究竟有什么魅力?
  3. Hibernate4 Annotation实例
  4. bing搜素引擎提交入口
  5. 关于C语言二进制相关的内容+笔试习题,建议收藏
  6. 普及一下域名注册知识
  7. 筑牢安全生产防线,工厂人员定位报警系统护航企业发展
  8. 应届生看过来 别以为没交社保就稳妥了
  9. 全球及中国低耗能冰箱行业发展趋向分析及投资竞争力分析报告2022-2027年
  10. python一行代码制作简易二维码