Bonjour a tous !
Alors voila suite a ce sujet
(http://www.developpez.net/forums/d13...e/#post7328235)
Je met permet de vous demander votre aide dans mon code.
En faite le XML fonctionne de cette façon , un <vol> peut être actif ou non ( balise <actif> , si un nœud parent est inactif <actif>0</actif> , les enfant sont inactif aussi) , un < vol> contient une <bande> (active ou non) , une bande contient des clichés (<cliche>) , cliche contient des image qui peuvent etre active ou non .
Je doit faire la liste des image active ( donc une image peut être inactive meme si elle est marquer active , si ses nœuds parent sont inactifs).
J'arrive grâce a mon code a savoir si un " vol" est actif , si oui je veut prendre le nom des bande active , le problème , c'est que ma requête me renvoie non pas les bande active dans mes <vol> , mais me renvoie toute les bande du XML .
Je ne sais pas quel requête utilisé.
Pourriez vous m'aider ? (Le Xml exemple est en fichier joint )
Voici le code
(Je suis largement ouvert a toute critique n'hésiter pas a être sévère
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
64
65
66
67
68 using System; using System.Collections.Generic; using System.Text; using System.Xml; using System.IO; using System.Data; using System.Xml.XPath; namespace TestIgn3 { class Program { static void Main(string[] args) { string actifvol, nomVol = null; //Chargement du XML. Console.WriteLine("start"); XmlDocument unxml = new XmlDocument(); try { unxml.Load("IgnXml.xml"); Console.ReadKey(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadKey(); } // Validité des vols. XmlNodeList unXml = unxml.SelectNodes("/TA/chantier/vol/actif"); foreach (XmlNode unNode in unXml) { actifvol = unNode.InnerText; int actifvol2 = int.Parse(actifvol); if (actifvol2 == 0) { Console.WriteLine("Le vol n'est pas actif"); } else { nomVol = unNode.InnerText; Console.WriteLine("Le vol est actif"); //Validité des bandes. XmlNodeList unXml2 = unxml.SelectNodes("/TA/chantier/vol/bande/actif"); foreach (XmlNode unNode2 in unXml2) { string actifbande = unNode2.InnerText; int actifbande2 = int.Parse(actifbande); if (actifbande2 == 0) { Console.WriteLine("La bande n'est pas active"); } else { Console.WriteLine("La bande est active"); XmlNodeList unXml3 = unxml.SelectNodes("/TA/chantier/vol/bande/cliche/image"); foreach (XmlNode unNode3 in unXml3) { } } } } } Console.ReadKey(); } } })
Merci d'avance !![]()
Partager