Lecture fichier xml

[Résolu]
Signaler
Messages postés
18
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
8 avril 2009
-
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
-
bonjour à tous,

Je viens de me lancer dans la manipulation des fichiers xml avec c# et je voudrais simplement savoir comment afficher une ligne de mon fichier xml dans une textbox .

voici par exemple quelques lignes xml:


<concessionnaire>

     <voiture>

          <marque> peugeot </marque>

          <modele> 206 CC </modele>

          <vitesse> 230 </vitesse>

     </voiture>  

</concessionnaire>

je voudrais par exemple simplement afficher "peugeot".

Meci d'avance

6 réponses

Messages postés
15
Date d'inscription
lundi 25 août 2008
Statut
Membre
Dernière intervention
17 novembre 2010

Salut,
Alors je vais essayer de t'expliquer, pour commencer, il faut que tu déclare un Dataset :
DataSet MonData = new DataSet();

Ensuite tu peux lire ton fichier grâce à celui-ci :
MonData.ReadXml(C:\MonFichier,XmlReadMode.InferSchema);

Là on lit le fichier. Ensuite on compte les élément dans le dataset :
int iElement = MonData.Tables[1].Rows.Count;

Maintenant.. il faut parcourir ton fichier XML :
for (int j = 0; j < MonData.Tables[1].Rows.Count; j++)

Ensuite pour afficher la valeur dans ton TextBox ca doit être un truc du genre :
TaTextBox = MonData.Tables["voiture"].Rows[j]["marque"].ToString()

Voilà.. j'espère t'avoir aidé..
a+
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
25
Bonsoir,

Personnellement, pour ce type de fichier (s'il n'est pas trop volumineux), je choisirai la solution de l'utilisation de la classe XmlDocument.
Un petit exemple:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("document.xml");//Chemin du fichier

XmlNodeList nodes = xmlDoc.SelectNodes("/concessionnaire/voiture/marque");
//Ou si ton fichier n'a qu'un seul noeud
//XmlNode node = xmlDoc.SelectSingleNode("/concessionnaire/voiture/marque");

foreach (XmlNode node in nodes)
{
string marque = node.InnerText;
}

En passant, j'en profites pour te donner un petit lien qui t'aidera beaucoup:
http://www.csharpfr.com/tutoriaux/XPATH-LANGUAGE_536.aspx

Voila,


Billou_13
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
25
Re,

Pour ce faire, il te suffit d'utiliser un boutton et la classe suivante: OpenFileDialog.
http://msdn.microsoft.com/fr-fr/library/system.windows.forms.openfiledialog(VS.80).aspx

Ensuite, à toi de jouer !

Bon courage,


Billou_13
Messages postés
15
Date d'inscription
lundi 25 août 2008
Statut
Membre
Dernière intervention
17 novembre 2010

Désolé pour l'affichage, je ne sais pas pourquoi tout s'est mis pareillement en ligne..
Messages postés
18
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
8 avril 2009

Merci momo187 ça marche presque très bien et ta syntaxe m'a beaucoup servie.

J'ai remarqué qu'il n'était pas nécessaire de déclarer iElement. De plus, Tables[1] n'est pas reconnu, donc une ligne m'a suffit, au lieu de la condition:
textBox1.Text = ds.Tables["voiture"].Rows[0]["marque"].ToString();

Merci Billou_13 pour ta réponse, je vais essayer de ce pas...
Messages postés
18
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
8 avril 2009

Merci Billou_13, cette méthode est très pratique.

Maintenant, au lieu de charger les fichiers grâce à xmlDoc.Load("document.xml"), je voudrais que l'utilisateur puisse les ouvrir manuellement, c'est-à-dire les ouvrir grâce à l'interface.

est-ce possible?