Lecture fichier xml

Résolu
tunit68 Messages postés 18 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 8 avril 2009 - 30 oct. 2008 à 16:08
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 - 31 oct. 2008 à 18:19
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

cs_momo187 Messages postés 15 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 17 novembre 2010
30 oct. 2008 à 16:26
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+
3
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
30 oct. 2008 à 17:14
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
3
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
31 oct. 2008 à 18:19
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
3
cs_momo187 Messages postés 15 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 17 novembre 2010
30 oct. 2008 à 16:57
Désolé pour l'affichage, je ne sais pas pourquoi tout s'est mis pareillement en ligne..
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tunit68 Messages postés 18 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 8 avril 2009
30 oct. 2008 à 18:03
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...
0
tunit68 Messages postés 18 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 8 avril 2009
31 oct. 2008 à 17:11
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?
0
Rejoignez-nous