使用JDOM.jar读取、修改并保存XML文件示例

5星 · 超过95%的资源 需积分: 9 35 下载量 185 浏览量 更新于2024-09-19 收藏 4KB TXT 举报
本文将介绍如何使用Java中的JDOM库来读取、修改XML文件,并保存修改后的结果。示例代码展示了一个简单的流程,包括加载XML文件、获取元素、修改内容以及保存更新。 在Java开发中,JDOM是一个用于处理XML文档的库,它提供了方便的API来创建、读取和修改XML文档。以下是如何使用JDOM进行XML操作的具体步骤: 1. 导入所需库:首先,你需要引入`jdom.jar`库,这是JDOM的核心库,包含了处理XML所需的所有类和方法。 2. 创建XML文件:例如,我们有一个名为`text.xml`的文件,其内容展示了个人联系人信息,每个联系人包含一个ID、名字和电子邮件地址。 ```xml <?xml version="1.0" encoding="UTF-8"?> <addressbook> <person id="1"> <name></name> <email>wangqipeng@gmail.com</email> </person> <person id="2"> <name></name> <email>wangyanming1980@gmail.com</email> </person> <person id="3"> <name></name> <email>wangluohuli@sina.com.cn</email> </person> </addressbook> ``` 3. 读取XML文件:使用`SAXBuilder`类从文件中构建一个`Document`对象,它是JDOM中的顶级容器,代表整个XML文档。 ```java SAXBuilder sb = new SAXBuilder(); Document doc = sb.build(new FileInputStream("text.xml")); ``` 4. 获取根元素:通过`Document`对象的`getRootElement()`方法获取XML文档的根元素,这里是`addressbook`。 ```java Element root = doc.getRootElement(); ``` 5. 遍历子元素:可以使用`root`元素的`getChildren()`方法获取所有子元素,这里可以获取到所有的`person`元素。 ```java List<Element> list = root.getChildren("person"); ``` 6. 访问和修改元素:遍历`list`,对每个`person`元素进行操作,如打印或修改内容。 ```java for (int i = 0; i < list.size(); i++) { Element element = (Element) list.get(i); System.out.println("联系人信息"); String id = element.getAttributeValue("id"); // 获取id属性值 Element nameElement = element.getChild("name"); // 获取name子元素 Element emailElement = element.getChild("email"); // 获取email子元素 // 修改name元素的内容 nameElement.setText("张三"); // 假设我们要修改第一个联系人的名字 // 打印当前联系人信息 System.out.println("ID:" + id); System.out.println("姓名:" + nameElement.getText()); System.out.println("邮箱:" + emailElement.getText()); } ``` 7. 保存修改:使用`XMLOutputter`类将修改后的`Document`对象输出到新的XML文件。 ```java XMLOutputter outputter = new XMLOutputter(); outputter.setFormat(Format.getPrettyFormat()); // 设置格式化输出 outputter.output(doc, new FileOutputStream("modified_text.xml")); // 保存到新的XML文件 ``` 通过以上步骤,你可以使用JDOM完成对XML文件的读取、修改和保存。这只是一个基本的示例,实际使用时可能需要处理更复杂的XML结构和更丰富的操作,但基本流程是一致的。JDOM提供了丰富的API,可以满足大多数XML处理需求,如添加、删除元素,修改属性,处理命名空间等。