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 :
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
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) { } } }
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.
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
Je ne comprends pas ce que je dois faire.
Partager