如何在 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 文件来读取数据。