Bonjour à tous
Voilà je débute avec Java et encore plus avec XML, j'essaye de coder un petit gestionnaire de commandes/facturation.
J'aimerais pouvoir me placer au bon noeud d'un fichier xml en fonction d'une chaine (le nom du client) passé en paramètre:
(les catch je ne m'en suis pas occupé pour le moment)
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 import java.io.*; import javax.xml.parsers.*; import org.xml.sax.SAXException; import org.w3c.dom.*; import javax.swing.*; class readerwriter { static String fichier = ""; static String ligne = ""; static BufferedReader fichierIn; static void read(String proprioRecherche) { try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("facture.xml"); NodeList elements = document.getElementsByTagName("client"); int max = elements.getLength(); //On parcours les noeuds de 0 à max int i = 0; String currentString = ""; String message; while (i<max && currentString != proprioRecherche) { Element elementClient = (Element)elements.item(i); currentString = elementClient.getAttribute("nom"); i++; } if (i<max)//on a trouvé { message = "Trouvé"; } else //on a depassé => pas trouvé { message = "pas toruvé"; } JOptionPane.showMessageDialog(null, message); } catch (ParserConfigurationException ex) { JOptionPane.showMessageDialog(null, ex.getMessage()); } catch (SAXException ex) { JOptionPane.showMessageDialog(null, ex.getMessage()); } catch(IOException ex) { JOptionPane.showMessageDialog(null, ex.getMessage()); } System.exit(0); } }
Mais j'ai manifestement un problème de logique.. (je n'ai jamais travaillé avec des arbres)
voilà un exemple de XML:
Or la fonction ne trouve jamais le client dans le xml.
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 <?xml version="1.0" encoding="UTF-8"?> <facture> <client nom="Dupon" prenom="Henry" tel="0318351234" port=""> 28 rue Mermoz 88000 DTC <objet nom="poupée russe" type="restauration" marque="made in taiwan" materiau=""> Recoller la bouche </objet> <echeance date_in="200307" date_out="250307"/> </client> <client nom="Torv" prenom="Linus" tel="0383252210" port=""> 38 fbrg de France 90000 Belfort <objet nom="jouet" type="creatoin" marque="made in taiwan" materiau="bois"> Decouper les pieces </objet> <echeance date_in="200307" date_out="250307"/> </client> </facture>
Pourriez vous m'aiguiller?
Merci![]()
Partager