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.



