Lire un fichier XML

JavaBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, nous allons apprendre à lire un fichier XML à l'aide de Java. Nous utiliserons un fichier XML d'exemple pour démontrer la lecture du fichier à l'aide du code Java. XML est un langage de balisage utilisé pour stocker et transporter des données.

Créer un fichier XML d'exemple

Nous utiliserons un fichier XML d'exemple students.xml à titre d'exemple. Il contient des données sur des étudiants et nous allons les lire à l'aide du code Java.

Créez un nouveau fichier nommé students.xml dans le répertoire ~/project avec le contenu suivant :

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

Importer les bibliothèques requises

Nous utiliserons les bibliothèques suivantes pour lire un fichier XML à l'aide du code Java :

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

Ajoutez les instructions suivantes au début du fichier de code pour importer les bibliothèques requises :

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

Analyser le fichier XML

Créez une nouvelle classe Java nommée Main dans le répertoire ~/project avec le contenu suivant :

public class Main {
    public static void main(String[] args) throws IOException, ParserConfigurationException, SAXException {
        DocumentBuilderFactory dBfactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = dBfactory.newDocumentBuilder();
        // Récupérer le fichier XML
        Document document = builder.parse(new File("students.xml"));
        document.getDocumentElement().normalize();
        // Obtenir le nœud racine
        Element root = document.getDocumentElement();
        System.out.println(root.getNodeName());
        // Obtenir tous les étudiants
        NodeList nList = document.getElementsByTagName("student");
        System.out.println(".................................");
    }
}

Nous avons créé une instance du constructeur et analysé le fichier XML à l'aide de la méthode parse. Après cela, nous obtenons l'élément racine du document, le normalisons et affichons ensuite son nom. Après cela, nous obtenons tous les étudiants à l'aide de la méthode getElementsByTagName et affichons un séparateur.

Extraire les données de chaque élément

Pour extraire les données de chaque élément, nous allons parcourir chaque balise du document à l'aide d'une boucle. Pour chaque étudiant, nous récupérerons leurs détails tels que l'ID, le nom, le numéro de matricule et l'emplacement.

Ajoutez le code suivant à l'intérieur de la boucle :

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());
}

Le code ci-dessus extraira les données de chaque élément du fichier XML. En utilisant la méthode getAttribute, l'ID de chaque étudiant est récupéré. En utilisant les méthodes getElementsByTagName et getTextContent, le nom, le numéro de matricule et l'emplacement de chaque étudiant sont récupérés.

Exécuter le code Java

Compilez et exécutez le code dans le terminal :

javac Main.java && java Main

Vous devriez voir la sortie suivante :

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

Student id : 101
Name : John
Roll No : 11001
Location : Inde

Student id : 102
Name : Alex
Roll No : 11002
Location : Russie

Student id : 103
Name : Rohan
Roll No : 11003
Location : USA

Résumé

Dans ce laboratoire, nous avons appris à lire un fichier XML à l'aide du code Java. Nous avons appris à importer les bibliothèques requises, à analyser un fichier XML, à parcourir chaque nœud de l'élément racine et à extraire les données de chaque élément. Vous pouvez utiliser ces connaissances pour lire n'importe quel fichier XML à l'aide de Java et en extraire les données.