Java中JDom解析XML攻略
简介
JDom是一个使用Java语言开发的XML文档解析API,它允许用户在内存中不创建DOM模型的情况下,方便地操作XML文档。相比于传统的DOM和SAX,JDom具有易学、易用、灵活等特点,因此在Java开发中得到了广泛的使用。
操作步骤
- 导入JDom包。可以从网上下载得到JDom jar包,也可以通过Maven坐标引入,具体方法这里不再赘述。
<dependency>
<groupId>jdom</groupId>
<artifactId>jdom</artifactId>
<version>2.0.5</version>
</dependency>
- 读取XML文档。JDom提供了SAXBuilder和DOMBuilder两种方式读取XML文档,这里以SAXBuilder为例。
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build("path/to/xmlFile");
- 解析XML文档。通过Document对象的方法,我们可以获取到RootElement和Element对象,从而对XML文档进行逐层解析。
Element root = doc.getRootElement();
List<Element> children = root.getChildren();
for (Element child : children) {
// ...
}
- 获取元素内容。在Element对象中,我们可以使用getText()方法获取到元素中包含的文本内容,也可以通过getAttributeValue()方法获取到指定属性的值。
String text = child.getText();
String id = child.getAttributeValue("id");
- 修改元素内容。通过调用Element对象的相应方法,可以修改元素的内容和属性信息。
child.setText("newText");
child.setAttribute("name", "newValue");
示例说明
示例1:从XML文件中读取学生信息
假设有一个学生信息的XML文件,内容如下:
<students>
<student id="1001">
<name>张三</name>
<age>18</age>
<gender>男</gender>
</student>
<student id="1002">
<name>李四</name>
<age>20</age>
<gender>男</gender>
</student>
<student id="1003">
<name>王五</name>
<age>19</age>
<gender>女</gender>
</student>
</students>
我们可以使用JDom解析该XML文件,代码如下:
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build("students.xml");
Element root = doc.getRootElement();
List<Element> students = root.getChildren("student");
for (Element student : students) {
String id = student.getAttributeValue("id");
String name = student.getChildText("name");
int age = Integer.parseInt(student.getChildText("age"));
String gender = student.getChildText("gender");
// 处理学生信息
}
在上述代码中,我们使用了getRootElement()方法获取根元素,使用getChildren()方法获取到所有的student子元素,通过getChildText()方法获取到元素中的文本内容和getAttributeValue()获取到id属性的值。
示例2:修改XML文件中的元素信息
假设我们需要修改上述的XML文件,将id为1002的学生信息中的gender修改为女。代码如下:
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build("students.xml");
Element root = doc.getRootElement();
List<Element> students = root.getChildren("student");
for (Element student : students) {
String id = student.getAttributeValue("id");
if (id.equals("1002")) {
student.getChild("gender").setText("女");
break;
}
}
XMLOutputter outputter = new XMLOutputter();
outputter.output(doc, new FileOutputStream("students.xml"));
在上述代码中,我们通过循环遍历所有student元素,找到id为1002的学生信息,使用setText()方法修改gender的值。最后,我们使用XMLOutputter类将修改后的Document对象输出到文件中,实现了修改操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中JDom解析XML_动力节点Java学院整理 - Python技术站