### JDOM 读取与修改 XML 文件 #### JDOM 简介 JDOM(Java Document Object Model)是一个用于处理 XML 数据的 Java 库。它提供了面向对象的 API 来解析、创建和修改 XML 文档。JDOM 的设计非常直观且易于使用,尤其适合那些希望在 Java 程序中轻松操作 XML 的开发人员。 #### 使用 JDOM 读取 XML 文件 在本文提供的示例代码中,我们首先导入了必要的类库: ```java import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.List; import org.jdom.Attribute; import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; import org.jdom.output.XMLOutputter; ``` 然后创建了一个名为 `readXML` 的类,该类中的 `main` 方法展示了如何使用 JDOM 来读取一个名为 `text.xml` 的 XML 文件: ```java SAXBuilder sb = new SAXBuilder(); Document doc = sb.build(new FileInputStream("text.xml")); ``` 这里使用了 `SAXBuilder` 类来构建 XML 文档的对象模型。`build` 方法接受一个输入流作为参数,该输入流指向要解析的 XML 文件。在这个例子中,我们通过 `FileInputStream` 读取本地文件系统中的 XML 文件。如果 XML 文件位于类路径下,可以通过下面的方式加载: ```java Document doc = sb.build(this.getClass().getClassLoader().getResourceAsStream("text.xml")); ``` #### 解析 XML 内容 一旦文档被解析,我们可以访问文档的根元素,以及文档中的其他元素: ```java Element root = doc.getRootElement(); // 获取根元素 List list = root.getChildren("person"); // 获取所有 person 元素 ``` 接着遍历这些元素并打印出它们的信息: ```java for (int i = 0; i < list.size(); i++) { Element element = (Element) list.get(i); String id = element.getAttributeValue("id"); String name = element.getChildText("name"); String email = element.getChildText("email"); System.out.println("ID: " + id); System.out.println("Name: " + name); System.out.println("Email: " + email); System.out.println("-----------------------------"); } ``` 这会输出类似于以下的信息: ``` ID: 1 Name: Email: wangqipeng@gmail.com ----------------------------- ID: 2 Name: Email: wangyanming1980@gmail.com ----------------------------- ID: 3 Name: Email: wangluohuli@sina.com.cn ----------------------------- ``` #### 修改 XML 内容 接下来,我们可以修改 XML 文档中的数据。例如,移除某个属性: ```java Element element1 = (Element) list.get(0); // 获取第一个 Person 元素 element1.removeAttribute(element1.getAttribute("id")); // 移除 id 属性 ``` 或者设置元素的文本值: ```java Element el = element1.getChild("name"); // 获取 Person 的 name 元素 el.setText("wang"); // 设置 name 的值为 wang ``` 还可以为元素添加属性: ```java Element element2 = (Element) list.get(1); // 获取第二个 Person 元素 Attribute arr = new Attribute("hot", "1"); // 创建 hot 属性 element2.setAttribute(arr); // 设置 Person 的 hot 属性为 "1" ``` 以及为子元素添加属性: ```java Element e2 = element2.getChild("name"); // 获取 Person 的 name 元素 Attribute arr1 = new Attribute("color", "red"); // 创建 color 属性 e2.setAttribute(arr1); // 设置 name 元素的 color 属性为 "red" ``` #### 保存修改后的 XML 文件 最后一步是将修改后的 XML 文档保存到一个新的文件中: ```java XMLOutputter xml = new XMLOutputter(); xml.output(doc, new FileOutputStream("cute.xml")); // 保存修改后的 XML 到 cute.xml ``` 这里使用了 `XMLOutputter` 类,它提供了一种方便的方式来格式化和输出 XML 文档。`output` 方法接受两个参数:一个是 `Document` 对象,另一个是输出流,用于指定要写入的目标文件。 #### 总结 通过这个简单的示例,我们了解了如何使用 JDOM 库来读取、解析、修改和保存 XML 文件。JDOM 提供了一个强大而直观的 API,使得开发者能够更加高效地处理 XML 数据。对于需要频繁与 XML 数据交互的应用程序来说,JDOM 是一个非常好的选择。
<?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
2.将jdom.jar包导入到工程中
3.新建readXML类
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.List;
import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
- tianzhou2014-07-25jdom读取xml看看有几种方式
- sadam2013-08-15这个可以用,不错
- kingmax21242013-04-19很有帮助,感谢共享。xml读取还有几种方式,先看看jdom的吧。
- a2857480242013-04-24这个可以有。。很不错的jdom归纳
- 粉丝: 12
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 点云数据处理与开发基础教程
- (源码)基于 JavaWeb 的超市收银系统.zip
- (源码)基于Vue和Cordova的移动端在线选座购票系统.zip
- (源码)基于C++的simpleDB数据库管理系统.zip
- (源码)基于Arduino的RTOSMMESGU实时操作系统项目.zip
- (源码)基于STM32和TensorFlow Lite框架的微语音识别系统.zip
- (源码)基于C#的支付系统集成SDK.zip
- (源码)基于Spring Cloud和Spring Boot的微服务架构管理系统.zip
- (源码)基于物联网的自动化开门控制系统 iotsaDoorOpener.zip
- (源码)基于ROS的Buddy Robot舞蹈控制系统.zip