JDOM操作XML文件 这篇文章讲的不错~把JDOM的基本操作实例化了,不过由于当时的作者用的JDOM版本还比较陈旧,所以部分代码会编译出错!支持中文也不好!所以,法老在原作者的基础上对程序做了修改!休正了编译出错以及中文乱码的问题 JDOM 是一种用于处理 XML 文档的 Java 库,它提供了简单、高效的 API,使得开发者可以方便地创建、修改和解析 XML 数据。JDOM 的设计目标是简化 XML 处理,对比于传统的 SAX 和 DOM 解析器,它具有更友好的编程模型。 在早期版本的 JDOM 中,可能存在编译错误和中文乱码问题。例如,原文提到的作者在使用旧版 JDOM 时遇到这些问题,但“法老”对此进行了修正。在使用 JDOM 时,确保你的环境配置正确是至关重要的,比如需要将 JDOM 的 jar 文件添加到类路径,并且要确保依赖的其他 XML 解析库,如 xerces.jar 和 jaxp.jar,也已正确配置。如果遇到 `java.lang.NoSuchMethodError` 或 `java.lang.NoClassDefFoundError`,这通常是因为类路径中的类库顺序不正确或者版本不匹配,需要调整 xerces.jar 的位置。 下面是一个简单的 JDOM 使用示例,演示如何读写 XML 文件。在这个例子中,我们有一个名为 `MyXml.xml` 的 XML 文件,包含两个书籍条目,每个条目有书名、作者、出版社、价格和出版日期等信息。为了操作这个 XML 文件,我们创建了一个 `XmlBean` 类,这个类包含了对应 XML 元素的属性,并提供了 getter 和 setter 方法。 ```java package jdom.test; import java.io.*; import java.util.*; import org.jdom.*; import org.jdom.output.*; import org.jdom.input.*; import javax.servlet.*; import javax.servlet.http.*; public class XmlBean { private String bookname, author, pub, price, pubdate; // Getters and Setters here... public static void main(String[] args) { try { // 读取 XML 文件 SAXBuilder builder = new SAXBuilder(); File inputFile = new File("MyXml.xml"); Document document = builder.build(inputFile); // 获取根元素 Element rootElement = document.getRootElement(); List<Element> bookElements = rootElement.getChildren("书"); // 遍历并打印书籍信息 for (Element book : bookElements) { String bookName = book.getChildText("书名"); String author = book.getChildText("作者"); String publisher = book.getChildText("出版社"); String price = book.getChildText("价格"); String pubDate = book.getChildText("出版日期"); System.out.println("书名: " + bookName); System.out.println("作者: " + author); System.out.println("出版社: " + publisher); System.out.println("价格: " + price); System.out.println("出版日期: " + pubDate); System.out.println("------------------------"); } // 创建新书籍并写入 XML XmlBean newBook = new XmlBean(); newBook.setbookname("新书名"); // ... 设置其他属性 Element newBookElement = new Element("书"); newBookElement.addContent(new Element("书名").setText(newBook.getbookname())); // ... 添加其他子元素 rootElement.addContent(newBookElement); // 写回 XML 文件 XMLOutputter outputter = new XMLOutputter(); outputter.setFormat(Format.getPrettyFormat()); FileWriter writer = new FileWriter(inputFile); outputter.output(document, writer); writer.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 在这个示例中,`SAXBuilder` 用于构建 `Document` 对象,代表整个 XML 文档。通过 `getRootElement()` 可以获取根元素,然后使用 `getChildren()` 查找特定的子元素。`XMLOutputter` 负责将修改后的 `Document` 对象写回文件,使用 `setFormat()` 可以设置输出格式,使其更易读。 JDOM 提供了丰富的 API 来处理 XML 文档,如添加、删除、修改元素和属性,处理命名空间等。对于处理较小的 XML 文件,JDOM 的性能是可接受的。然而,对于大型 XML 文档,考虑到内存消耗,可能需要考虑使用更高效的解析器,如 StAX 或 SAX。JDOM 是 Java 开发者处理 XML 的一个强大工具,尤其适合那些不希望处理低级别事件驱动 API 的开发人员。





















- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- spring-jdbc-6.2.0-RC1.jar中文文档.zip
- spring-jdbc-6.2.0-RC3.jar中文文档.zip
- spring-jdbc-6.2.1.jar中文文档.zip
- spring-jdbc-6.2.2.jar中文文档.zip
- spring-jdbc-6.2.5.jar中文文档.zip
- 基于uniapp的授课平台小程序,可二次开发
- VSG算法在离网并网微网无缝切换中的应用 · 虚拟同步发电机
- 基于LSDyna的预制裂隙岩石爆破模拟:RHT与HJC本构模型的应用及比较 · 爆破工程 v2.1
- 基于JSON的轻量级NoSQL数据库jsonDB
- 基于多维度优化策略的单向LCL逆变器抗扰控制技术研究与应用 自抗扰控制(ADRC)
- 2021年电赛D题,并非参加比赛的作品,为准备参加2023年电赛时所做
- 无线通信领域中多径衰落信道下OFDM传输性能及信道估计算法误码率比较研究
- 基于PLC的自动洗车控制系统设计:博途仿真工程与HMI交互实现高效洗车流程
- 【电子设计竞赛】2018年电子设计大赛A题失真度分析仪:从理论到代码实现全解析
- 基于Comsol仿真的太赫兹超材料吸波器研究:石墨烯、二氧化钒与硅的应用
- 基于QT框架与百度AI云平台开发的实时人脸识别与多维度用户信息智能分析系统-人脸检测-性别识别-年龄估算-颜值评分-情绪分析-脸型分类-实时图像处理-数据可视化展示-用于个人形象分.zip


