介绍
在本实验中,我们将学习如何使用 Java 读取 XML 文件。我们将使用一个示例 XML 文件来演示如何使用 Java 代码读取该文件。XML 是一种用于存储和传输数据的标记语言。
在本实验中,我们将学习如何使用 Java 读取 XML 文件。我们将使用一个示例 XML 文件来演示如何使用 Java 代码读取该文件。XML 是一种用于存储和传输数据的标记语言。
我们将使用一个示例 XML 文件 students.xml 作为示例。它包含一些关于学生的数据,我们将使用 Java 代码读取这些数据。
在 ~/project
目录下创建一个名为 students.xml
的新文件,内容如下:
<students>
<student id="101">
<Name>John</Name>
<id>11001</id>
<location>India</location>
</student>
<student id="102">
<Name>Alex</Name>
<id>11002</id>
<location>Russia</location>
</student>
<student id="103">
<Name>Rohan</Name>
<id>11003</id>
<location>USA</location>
</student>
</students>
我们将使用以下库来通过 Java 代码读取 XML 文件:
org.w3c.dom.*
javax.xml.parsers.*
在代码文件的开头添加以下语句以导入所需的库:
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import javax.xml.parsers.*;
import java.io.*;
在 ~/project
目录下创建一个名为 Main
的新 Java 类,内容如下:
public class Main {
public static void main(String[] args) throws IOException, ParserConfigurationException, SAXException {
DocumentBuilderFactory dBfactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dBfactory.newDocumentBuilder();
// 获取 XML 文件
Document document = builder.parse(new File("students.xml"));
document.getDocumentElement().normalize();
// 获取根节点
Element root = document.getDocumentElement();
System.out.println(root.getNodeName());
// 获取所有学生
NodeList nList = document.getElementsByTagName("student");
System.out.println(".................................");
}
}
我们创建了一个 builder 实例,并使用 parse
方法解析了 XML 文件。之后,我们获取文档的根元素并对其进行规范化,然后打印其名称。接着,我们使用 getElementsByTagName
方法获取所有学生并打印一个分隔符。
为了从每个元素中提取数据,我们将使用循环遍历文档的每个标签。对于每个学生,我们将获取他们的详细信息,例如 ID、姓名、学号和位置。
在循环内添加以下代码:
Node node = nList.item(i);
System.out.println(); // 只是一个分隔符
if (node.getNodeType() == Node.ELEMENT_NODE) {
// 打印每个学生的详细信息
Element element = (Element) node;
System.out.println("Student id : " + element.getAttribute("id"));
System.out.println("Name : " + element.getElementsByTagName("Name").item(0).getTextContent());
System.out.println("Roll No : " + element.getElementsByTagName("id").item(0).getTextContent());
System.out.println("Location : " + element.getElementsByTagName("location").item(0).getTextContent());
}
上述代码将从 XML 文件的每个元素中提取数据。使用 getAttribute
方法获取每个学生的 ID。使用 getElementsByTagName
和 getTextContent
方法获取每个学生的姓名、学号和位置。
在终端中编译并运行代码:
javac Main.java && java Main
你应该会看到以下输出:
students
.................................
Student id : 101
Name : John
Roll No : 11001
Location : India
Student id : 102
Name : Alex
Roll No : 11002
Location : Russia
Student id : 103
Name : Rohan
Roll No : 11003
Location : USA
在本实验中,我们学习了如何使用 Java 代码读取 XML 文件。我们掌握了如何导入所需的库、解析 XML 文件、遍历根元素的每个节点,以及从每个元素中提取数据。你可以利用这些知识,使用 Java 读取任何 XML 文件并从中提取数据。