下面我将详细讲解Java遍历读取XML文件内容的完整攻略。
一、使用DOM方式读取XML文件
-
引入相关依赖:需要在项目中引入相关的dom4j和jaxen库。
-
创建SAXReader对象,利用SAXReader对象解析XML文件。
SAXReader reader = new SAXReader();
Document document = reader.read(new File("example.xml"));
- 获取根节点,并递归遍历根节点的子节点进行处理。
Element root = document.getRootElement();
List<Element> childElements = root.elements();
for (Element child : childElements) {
//处理逻辑
}
- 对于子节点中的属性值获取,需要使用attributeValue()方法。
String attributeValue = child.attributeValue("属性名");
二、使用JDOM方式读取XML文件
-
引入相关依赖:需要在项目中引入相关的jdom库。
-
创建SAXBuilder对象,利用SAXBuilder对象构建JDOM Document对象。
SAXBuilder builder = new SAXBuilder();
Document document = builder.build(new File("example.xml"));
- 获取根节点并遍历其所有的子节点,进行处理。
Element root = document.getRootElement();
List<Element> childElements = root.getChildren();
for (Element child : childElements) {
//处理逻辑
}
- 对于子节点中的属性值获取,需要使用getAttribute()方法。
Attribute attribute = child.getAttribute("属性名");
String attributeValue = attribute.getValue();
示例1:
下面是一个示例,输入一个books.xml文件,输出其中所有书籍的名称和作者。
books.xml:
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
<name>Java编程思想</name>
<author>Bruce Eckel</author>
</book>
<book>
<name>Effective Java</name>
<author>Joshua Bloch</author>
</book>
</books>
示例代码:
import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Test {
public static void main(String[] args) throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read(new File("books.xml"));
Element root = document.getRootElement();
List<Element> bookElements = root.elements("book");
for (Element book : bookElements) {
String name = book.elementText("name");
String author = book.elementText("author");
System.out.println("书名:" + name + ",作者:" + author);
}
}
}
输出结果:
书名:Java编程思想,作者:Bruce Eckel
书名:Effective Java,作者:Joshua Bloch
示例2:
下面是一个示例,输入一个students.xml文件,输出所有年龄大于18岁的学生名字及其所在城市。
students.xml:
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student>
<name>Tom</name>
<age>18</age>
<city>Beijing</city>
</student>
<student>
<name>Jerry</name>
<age>22</age>
<city>Shanghai</city>
</student>
</students>
示例代码:
import java.io.File;
import java.util.List;
import org.jdom2.Attribute;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder;
public class Test {
public static void main(String[] args) throws Exception {
SAXBuilder builder = new SAXBuilder();
Document document = builder.build(new File("students.xml"));
Element root = document.getRootElement();
List<Element> studentElements = root.getChildren("student");
for (Element student : studentElements) {
Attribute ageAttribute = student.getAttribute("age");
int age = Integer.parseInt(ageAttribute.getValue());
if (age > 18) {
String name = student.getChildText("name");
String city = student.getChildText("city");
System.out.println("学生:" + name + ",所在城市:" + city);
}
}
}
}
输出结果:
学生:Jerry,所在城市:Shanghai
希望上述讲解能够对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java遍历读取xml文件内容 - Python技术站