mallek-ahmed / Git-Repo

0 stars 0 forks source link

Class parse xml #9

Open mallek-ahmed opened 1 year ago

mallek-ahmed commented 1 year ago

import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder;

import java.io.BufferedInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List;

public class XMLDownloaderAndParser {

public static void main(String[] args) {
    String url = "http://exemple.com/monfichier.xml";
    String filePath = "monfichier.xml";

    // Télécharger le fichier XML
    try (InputStream in = new URL(url).openStream();
         BufferedInputStream bis = new BufferedInputStream(in);
         FileOutputStream fis = new FileOutputStream(filePath)) {
        byte[] dataBuffer = new byte[1024];
        int bytesRead;
        while ((bytesRead = bis.read(dataBuffer, 0, 1024)) != -1) {
            fis.write(dataBuffer, 0, bytesRead);
        }
    } catch (IOException e) {
        System.out.println("Echec du téléchargement du fichier!");
        e.printStackTrace();
    }

    // Vérifier si le téléchargement a réussi
    if (!Files.exists(Paths.get(filePath))) {
        System.out.println("Fichier " + filePath + " non trouvé!");
        return;
    }

    // Analyser le fichier XML et extraire le titre principal des livres
    try {
        // Créer un SAXBuilder
        SAXBuilder saxBuilder = new SAXBuilder();

        // Parser le fichier XML
        Document document = saxBuilder.build(filePath);

        // Obtenir l'élément racine
        Element rootElement = document.getRootElement();

        // Obtenir tous les éléments 'book' et parcourir la liste
        List<Element> bookList = rootElement.getChildren("book");
        for (Element book : bookList) {
            // Obtenir le 'mainTitle' de chaque 'book'
            String mainTitle = book.getChild("title").getChildText("mainTitle");
            System.out.println("Le titre principal du livre est: " + mainTitle);
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

org.jdom jdom2 2.0.6