XML-Datei lesen

JavaBeginner
Jetzt üben

Einführung

In diesem Lab werden wir lernen, wie man eine XML-Datei mit Java lesen kann. Wir werden eine Beispiel-XML-Datei verwenden, um das Lesen der Datei mit Java-Code zu demonstrieren. XML ist eine Markup-Sprache, die zum Speichern und Transportieren von Daten verwendet wird.

Erstellen einer Beispiel-XML-Datei

Wir werden eine Beispiel-XML-Datei students.xml als Beispiel verwenden. Sie enthält einige Daten über Schüler und wir werden diese mit Java-Code lesen.

Erstellen Sie in das Verzeichnis ~/project eine neue Datei namens students.xml mit dem folgenden Inhalt:

<students>
    <student id="101">
        <Name>John</Name>
        <id>11001</id>
        <location>Indien</location>
    </student>
    <student id="102">
        <Name>Alex</Name>
        <id>11002</id>
        <location>Russland</location>
    </student>
    <student id="103">
        <Name>Rohan</Name>
        <id>11003</id>
        <location>USA</location>
    </student>
</students>

Importiere die erforderlichen Bibliotheken

Wir werden die folgenden Bibliotheken verwenden, um eine XML-Datei mit Java-Code zu lesen:

  • org.w3c.dom.*
  • javax.xml.parsers.*

Fügen Sie die folgenden Anweisungen am Anfang der Code-Datei hinzu, um die erforderlichen Bibliotheken zu importieren:

import org.w3c.dom.*;
import org.xml.sax.SAXException;
import javax.xml.parsers.*;
import java.io.*;

Analysiere die XML-Datei

Erstellen Sie in das Verzeichnis ~/project eine neue Java-Klasse namens Main mit dem folgenden Inhalt:

public class Main {
    public static void main(String[] args) throws IOException, ParserConfigurationException, SAXException {
        DocumentBuilderFactory dBfactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = dBfactory.newDocumentBuilder();
        // XML-Datei abrufen
        Document document = builder.parse(new File("students.xml"));
        document.getDocumentElement().normalize();
        // Wurzelknoten abrufen
        Element root = document.getDocumentElement();
        System.out.println(root.getNodeName());
        // Alle Schüler abrufen
        NodeList nList = document.getElementsByTagName("student");
        System.out.println(".................................");
    }
}

Wir haben eine Instanz des Builders erstellt und die XML-Datei mit der parse-Methode analysiert. Danach erhalten wir das Wurzelelement des Dokuments, normalisieren es und geben dann seinen Namen aus. Danach erhalten wir alle Schüler mit der getElementsByTagName-Methode und geben einen Trennstrich aus.

Extrahiere Daten aus jedem Element

Um Daten aus jedem Element zu extrahieren, werden wir mit einer Schleife durch jedes Tag des Dokuments iterieren. Für jeden Schüler werden wir ihre Details wie ID, Name, Matrikelnummer und Standort abrufen.

Fügen Sie den folgenden Code innerhalb der Schleife hinzu:

Node node = nList.item(i);
System.out.println();    //Nur ein Trennzeichen
if (node.getNodeType() == Node.ELEMENT_NODE) {
    // Drucken Sie die Details jedes Schülers
    Element element = (Element) node;
    System.out.println("Schüler-ID : " + element.getAttribute("id"));
    System.out.println("Name : " + element.getElementsByTagName("Name").item(0).getTextContent());
    System.out.println("Matrikelnummer : " + element.getElementsByTagName("id").item(0).getTextContent());
    System.out.println("Standort : " + element.getElementsByTagName("location").item(0).getTextContent());
}

Der obige Code extrahiert die Daten aus jedem Element der XML-Datei. Mit der getAttribute-Methode wird die ID jedes Schülers abgerufen. Mit den getElementsByTagName- und getTextContent-Methoden werden der Name, die Matrikelnummer und der Standort jedes Schülers abgerufen.

Führe den Java-Code aus

Kompilieren und führen Sie den Code im Terminal aus:

javac Main.java && java Main

Sie sollten die folgende Ausgabe sehen:

students
.................................

Student id : 101
Name : John
Matrikelnummer : 11001
Standort : Indien

Student id : 102
Name : Alex
Matrikelnummer : 11002
Standort : Russland

Student id : 103
Name : Rohan
Matrikelnummer : 11003
Standort : USA

Zusammenfassung

In diesem Lab haben wir gelernt, wie man eine XML-Datei mit Java-Code lesen kann. Wir haben gelernt, wie man erforderliche Bibliotheken importiert, eine XML-Datei analysiert, durch jeden Knoten des Wurzelelements iteriert und Daten aus jedem Element extrahiert. Sie können diese Kenntnisse verwenden, um jede XML-Datei mit Java zu lesen und Daten daraus zu extrahieren.