Bonjour tous le monde ! Je reviens vers vous cette fois ci pour un petit problème ! J'explique tout d'abord mon projet : Je suis en train de créer une application Java, sous Netbeans, qui permettra de compléter un fichier excel en fonction de la lecture d'un fichier XML.

Où j'en suis ? J'arrive à écrire/créer/éditer un fichier Excel. J'arrive à choisir quel fichier XML je veux, cependant, là où j'ai du mal c'est sur la lecture du fichier XML.

J'ai un fichier comme ceci :

Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<etiquette>
<client num="52121211"/> <!-- Numéro du client -->
<modele type=1"/>
<taille witdh="454"/>
</etiquette>

Et mon programme ressemble à ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package xml.java;
 
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
 
public class XMLJAVA {
 
    public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
        final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        try {
            final DocumentBuilder builder = factory.newDocumentBuilder();
            final Document document = builder.parse(new File("C:/Users/stagibe/Desktop/exempleLOI.xml"));
 
            //Affiche l'élément racine
            final Element racine = document.getDocumentElement();
 
            final NodeList racineNoeuds = racine.getChildNodes();
 
            final int nbRacineNoeuds = racineNoeuds.getLength();
 
            for (int i = 0; i < nbRacineNoeuds; i++) {
                if (racineNoeuds.item(i).getNodeType() == Node.ELEMENT_NODE) {
                    final Element client = (Element) racineNoeuds.item(i);
                    System.out.println("n client : " + client.getAttribute("num"));
                    final Element modele = (Element) racineNoeuds.item(i);
                    System.out.println("modèle : " + modele.getAttribute("type"));
                    final Element taille = (Element) racineNoeuds.item(i);
                    System.out.println("taille : " + modele.getAttribute("width"));
                }
            }
 
        } catch (final ParserConfigurationException | SAXException | IOException e) {
        }
 
    }
 
}
Cependant, j'ai un problème en exécutant ce programme. Voici ce que j'ai d'afficher dans la console :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
n client : 52121211
modèle :
taille :
n client :
modèle : 1
taille :
n client :
modèle :
taille : 454
En fait, mon programme lis tous le document pour rechercher un SEUL attribut, puis refait ceci pour le suivant, puis recommence pour le dernier. Mais j'aimerai que mon programme lises directement les attributs du document complet directement à la suite. J'aimerais une seule lecture du fichier.

Je ne comprends pas ce que je dois faire.