如何在 Java 中读取 XML 文件
原文:https://www.studytonight.com/java-examples/how-to-read-xml-file-in-java
在这篇文章中,我们将学习使用 Java 代码读取 XML 文件。XML 是一种可扩展标记语言文档文件,用于存储和传输数据。
Java 提供了一个 XML 解析器库来读取 XML 文档。因此,我们必须在编写代码读取文件之前导入这些库。
在这里,我们使用了一个包含一些数据的示例 XML 文件 students.xml ,我们将使用 Java 代码阅读该文件。
// 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>
举例时间:
让我们创建一个读取 XML 文件的示例。在这里,我们首先创建了一个 doucment 的实例,然后解析它来读取文件。getDocumentElement()
方法用于读取根元素,然后通过使用循环,我们迭代文档的所有标签。
package myjavaproject;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import javax.xml.parsers.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException, ParserConfigurationException, SAXException{
DocumentBuilderFactory dBfactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dBfactory.newDocumentBuilder();
// Fetch XML File
Document document = builder.parse(new File("students.xml"));
document.getDocumentElement().normalize();
//Get root node
Element root = document.getDocumentElement();
System.out.println(root.getNodeName());
//Get all students
NodeList nList = document.getElementsByTagName("student");
System.out.println(".................................");
for (int i = 0; i < nList.getLength(); i++)
{
Node node = nList.item(i);
System.out.println(); //Just a separator
if (node.getNodeType() == Node.ELEMENT_NODE)
{
//Print each student's detail
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());
}
}
}
}
学生 ................................. 学号:101 姓名:约翰 卷号:11001 地点:印度
学号:102 姓名:亚历克斯 卷号:11002 地点:俄罗斯
学号:103 姓名:罗翰 卷号:11003 地点:美国
实时示例:
您可以使用在线 Java 编译器测试这些 Java 代码。这里,我们附加了一个 XML 文件来读取数据。