Recherche
 
 
 
Tutoriaux
 
- Initiation à VS .NET
- Agencement des composants
- Menu déroulant
- Pop-up
- Traitement des fichiers
- Les Délégués
- Les Threads
- Fichiers XML
- Flux Web
- Services Web
 
 
Projets
 
- Calpe's World
- Sarky
- CyberAbuse
 
 
Me conctacter
 
- Demande d'aide
- Me proposer un poste
 
 
Liens
 
- Developpez.com
- C# Help
- Cours C# de l'ESSI
 
 
XML

Généralités

Le XML est, en résumé, une façon de représenter des données sous forme d'arbre.
Beaucoup de sites lui sont dédiés, ainsi j'ai décidé de passer directement à la pratique.
Nous allons créer une application qui ouvre un fichier XML, et affiche ses données dans un tableau.
Vous allez vous rendre compte ainsi directement du rôle de l'XML, ce programme étant beaucoup plus long en utilisant un script pour lire et traiter le fichier.


Lire un fichier XML

Tout d'abord, on crée le fichier qui sera ensuite ouvert par les objets XML. Il s'agit dans notre cas du fichier "data.xml".
Ce fichier sera placé sous <emplacement> \ <nom> \ bin \ Debug
Son contenu sera dans notre exemple:
<?xml version="1.0" encoding="utf-8"?>
<concessionnaire>
     <voiture>
          <marque> peugeot </marque>
          <modele> 206 CC </modele>
          <vitesse> 230 </vitesse>
     </voiture>
     <voiture>
          <marque> renault </marque>
          <modele> scenic </modele>
          <vitesse> 180 </vitesse>
     </voiture>
     <voiture>
          <marque> peugeot </marque>
          <modele> 307 </modele>
          <vitesse> 190 </vitesse>
     </voiture>
     <voiture>
          <marque> ferrari </marque>
          <modele> 348 </modele>
          <vitesse> 350 </vitesse>
     </voiture>
</concessionnaire>


On commence par créer une nouvelle application C# comme dabitude.

On place un composant DataGrid au milieu de notre fenêtre.
Il s'agit du tableau qui va traiter les données XML.

On clique 2 fois sur le haut de la fenêtre afin d'entrer dans le code.
          using System.Xml;

On ajoute le namespace dédié à l'XML à fin de pouvoir utiliser les fonctions XML.

     public class Form1 : System.Windows.Forms.Form
     {
          private XmlDocument xmlDoc;

On déclare un XmlDocuement commun à toute la classe afin de pouvoir l'utiliser à travers les différentes méthodes.
Cet objet sert à transférer des données au format XML.

On se place sous la méthode Form1_Load .
          private void Form1_Load(object sender, System.EventArgs e)
          {
               XmlDocument xmlDoc = new XmlDocument();
               xmlDoc.Load("data.xml");
          }

La méthode Load de l'objet xmlDOc permet de charger notre fichier de données.

On va maintenant créer un DataSet qui servira à produire le document tableau à partir des données.
          private void Form1_Load(object sender, System.EventArgs e)
          {
               XmlDocument xmlDoc = new XmlDocument();
               xmlDoc.Load("data.xml");

               DataSet ds = new DataSet();
               XmlNodeReader xnr = new XmlNodeReader(xmlDoc);
               ds.ReadXml(xnr);
               
               dataGrid1.DataSource = ds;
          }

Le XmlNodeReader sert à lire le schéma XML par chacun de ses noeuds pour pouvoir le traiter plus facilement ensuite.
Une fois ce travail dûrement achevé, il reste à compilez votre programme (triangle bleu) et vous verrez que votre fichier s'affiche au bout de deux cliques.
On finit par dire que le tableau DataGrid est associé à l'ordonnancement de données DataSet, lié lui-même au document XML XmlDocument.. simple mais compliqué..
Pour avoir un affichage direct, il suffit de dire au DataGrid, c'est-à-dire à l'affichage graphique de vos données, de n'afficher que les données à partire de "voiture". Pour ceci rien de plus simple, une seule ligne suffit:
          dataGrid1.NavigateTo(0,"voiture");


Ce qui nous donne pour l'affichage complet du fichier "data.xml" à travers un tableau, le code suivant:
          private void Form1_Load(object sender, System.EventArgs e)
          {
               XmlDocument xmlDoc = new XmlDocument();
               xmlDoc.Load("data.xml");

               DataSet ds = new DataSet();
               XmlNodeReader xnr = new XmlNodeReader(xmlDoc);
               ds.ReadXml(xnr);

               dataGrid1.DataSource = ds;
               
               dataGrid1.NavigateTo(0,"voiture");
          }


Ecrire un fichier XML (en cours)

Maintenant que nous savons lire un fichier XML nous allons continuer notre exemple afin de pouvoir modifier ce fichier.


Ajoutons un bouton en bas à droite et cliquons deux dessus pour entrer dans le code.