Salut
En fait, j'ai un fichier XML, je pense que j'arrive à le parcourir ligne par ligne, mais je voudrais récupérer les valeurs des attributs de chaque ligne. Voila comment je procède (doc est l'objet XDocument (xml), et dico est un Dictionnary<string,string>) :
Ca ne fonctionne pas (sinon je ne serai pas là). Apparement d'après le debug, il ne trouve pas de valeurs aux attributs lors du test if. Par contre, xr contient bien la ligne à regarder.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 foreach (XNode add in doc.DescendantNodes()) { System.Xml.XmlReader xr = add.CreateReader(); if (xr.GetAttribute("key") != null && xr.GetAttribute("value") != null) { dico.Add(xr.GetAttribute("key"), xr.GetAttribute("value")); } }
Voila le fichier XML :
J'ai un code en C# qui permet de faire ca et je me suis inspirer de ca, mais ca utilise XMLDocument, SelectNodes et Attributes :
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 <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="******" type="************,*******" /> </configSections> <appSettings> <!-- Utilisateur de l'application--> <add key="utilisateur" value="user"/> <!-- Mot de passe--> <add key="motDePasse" value="pass"/> <!-- Url de base pour les services--> <add key="servicesUrl" value="http://webservicelink" /> <!-- Url de base pour les services du centre appel--> <add key="callCenterUrl" value="http://localhost/CallCenterServices" /> <!-- Gestion de la synchro --> <add key="synchro.compteur.releveLibre" value="False" /> <add key="synchro.compteur.releveTournee" value="False" /> <add key="synchro.forcerNotificationAuto" value="True" /> <add key="synchro.intervention.borneInf" value="-2" /> <add key="synchro.intervention.borneSup" value="2" /> <add key="synchro.intervention.horizon" value="0" /> <add key="synchro.intervention.responsable" value="False" /> <add key="synchro.intervention.demandeur" value="False" /> <add key="synchro.intervention.ressource" value="True" /> <add key="synchro.calendrier.borneInf" value="-2" /> <add key="synchro.calendrier.borneSup" value="2" /> <add key="synchro.calendrier.service" value="False" /> <add key="synchro.compteur.ordreTournee" value="NUMERO" /> <add key="worklfow.intervention.actif" value="True" /> <add key="menu.action1" value="" /> <add key="menu.action2" value="" /> <add key="menu.action3" value="" /> <add key="synchro.parc.nbHistoriqueITV" value="3" /> </appSettings> </configuration>
Quelqu'un peut m'aider ? Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 foreach(XmlNode add in dom.SelectNodes("//configuration/appSettings/add") { appSettings[add.Attributes["key"].Value] = add.Attributes["value"].InnerText; }
Partager