Chinese (People's Republic of China)  English  Français


Supinfo-Projects.com
Tous les projets des élèves ingénieurs de Supinfo



Projets
  Dernier Projet
  Les plus populaires
  Tous les Projets

343 Visiteurs
3168 Projets


My Supinfo-Projects

   Connectez-vous
   Créez un Compte


Synopsis

   90 Visites
   Note INTERNET : 19.3
    (3 Votants)
   0 Commentaires

   Lire l'article

Evaluez cet article

20
18
16
14
12
10
8
6
4
2
0


Commentez cet article

Auteur :

Email :

Votre commentaire :



 
2005 - Pérennisation
Manipuler des fichiers XML en c#
[30 mn de lecture - paru le 5/5/2005 12:25:08 PM - Public : Débutant]

Auteur

hoarea_mMickael HOAREAU
Elève-Ingénieur Supinfo Océan-Indien
Promotion SUPINFO 2007

   Lui écrire
   Tous les projets de cet auteur
   Le mini-CV de cet auteur

1. Créer un nouveau fichier XML


    Deux classes sont utilisables pour créer un document XML. La première classe est XmlTextWriter. Cela consiste à créer un flux vers un fichier, et d’ajouter les éléments au fur à mesure dans ce fichier.
    La seconde classe est la classe XmlDocument. Cela consiste à créer une instance de cette classe, de travailler sur cette instance, et sauvegarder les modifications de cette instance dans un fichier. Ces deux procédés sont décrits ci-dessous.

1.1. XmlTextWriter


Le tableau ci dessous décrit les principales méthodes de la classe.

Méthodes/PropriétésDescriptions
methodeWriteStartElement
methodeWriteEndElement
Ecrit la balise de début ou de fin passé en argument. WriteEndElement ne prend aucun argument.
methodeWriteString Ecrit le texte spécifié en argument


Pour expliquer l’utilisation de cette classe, nous allons créer le fichier agenda.xml suivant :

Fichier XML

Voici donc le code qui permettra de créer le fichier agenda.xml :

//On crée un nouveau XmlTextWriter

XmlTextWriter docxml;

docxml=new XmlTextWriter("agenda1.xml",System.Text.Encoding.UTF8);

docxml.Formatting=Formatting.Indented;

//On écrit la première ligne avec les spécifications du document XML

docxml.WriteStartDocument();

 

//on écrit le noeud racine du document

docxml.WriteStartElement("Agenda");

   

//On écrit la première personne

docxml.WriteStartElement("Personne");

//On écrit l'attribut "nom" de la première personne

docxml.WriteAttributeString("Nom","Mickael");

 

//On écrit la première propriété "Age"

docxml.WriteStartElement("Age");

docxml.WriteString("20");

docxml.WriteEndElement();

 

//On écrit la seconde propriété "Ville"

docxml.WriteStartElement("Ville");

docxml.WriteString("Saint Benoit");

docxml.WriteEndElement();

 

//On ferme la balise personne

docxml.WriteEndElement();

 

//On ferme la balise agenda

docxml.WriteEndElement();

 

docxml.Close();


Remarque :
Il ne faut pas oublier de faire appel à la méthode close() à la fin du document. Si cette méthode n’est pas présente, les données ne seront pas écrites dans le fichier.
Le document XML généré doit avoir une syntaxe correcte sinon l’application générera une exception (InvalidOperationExeception).

1.2. XmlDocument

    Dans cette partie nous allons crée le même fichier agenda.xml cité auparavant, mais cette fois ci avec les méthodes de la classe XmlDocument.

    Le tableau suivant décrit les méthodes les plus importantes pour créer un document XML avec la classe XmlDocument:

Méthodes/PropriétésDescription
methodeCreateNode Créer un nœud. Cette méthode renvoie un Xml.XmlNode. Cette méthode prend en paramètres le type du nœud et le nom du nœud. On peut aussi utiliser directement les méthodes pour les nœuds types. Par exemple, la méthode CreateElement permet de créer un nœud de type Element.
methodeAppendChild Ajouter le nœud passer en paramètre dans l'arborescence
methodeCreateAttributes Créer un attribut. Cette méthode renvoie un Xml.XmlAttribute
propriétéAttributes Renvoie une collection des attributs du nœud


Le code suivant vous permettra de comprendre l’utilisation des méthodes précédentes :

//On instancie un nouveau XmlDocument

XmlDocument docxml=new XmlDocument();

 

//on crée le premier noeud avec les spécifications du document XML

XmlDeclaration declaration=docxml.CreateXmlDeclaration("1.0","utf-8","");

//On ajoute la déclaration au document

docxml.AppendChild(declaration);

 

//On crée le noeud racine du document

XmlNode racine=docxml.CreateNode(System.Xml.XmlNodeType.Element,"Agenda","");

//On ajoute ce noeud au document

docxml.AppendChild(racine);

 

//On crée un nouveau noeud pour la première personne

XmlNode personne1 = docxml.CreateElement("Personne");

//On ajoute un attribut "nom" à ce noeud personne

XmlAttribute nom_personne1=docxml.CreateAttribute("Nom");

nom_personne1.Value="Mickael";

personne1.Attributes.Append(nom_personne1);

 

//On ajoute les différentes propriétés à personne

//Age

XmlNode propriete1=docxml.CreateElement("Age");

propriete1.InnerText="20";

personne1.AppendChild(propriete1);

//Ville

XmlNode propriete2=docxml.CreateElement("Ville");

propriete2.InnerText="Saint Benoit";

personne1.AppendChild(propriete2);

 

//On ajoute la personne1 au document

racine.AppendChild(personne1);

 

docxml.Save("agenda.xml");



Remarque :

    L’ordre des instructions n’est pas très important. On peut créer un nœud, ajouter ce nœud au document, puis rajouter des nœuds enfants à ce nœud. On peut aussi créer un nœud, rajouter des nœuds enfants à ce nœud, ajouter le nœud parent au document. On obtiendra le même résultat.
    En effet, le document XML sera écrit dans le fichier seulement à la dernière ligne avec la méthode Save(« fichier »). Alors qu’avec la classe XmlTewtWriter, l’ordre des instructions était important.
    Il est plus judicieux de choisir la classe XmlTextWriter pour créer un nouveau ficher. Avec la classe XmlDocument, pour chaque élément qu’on souhaite insérer il faut créer un nouvel objet. Cela peut devenir très fastidieux. Alors qu’avec XmlTextWriter, il ne s’agit que d'un flux de texte qu’on écrit vers un fichier.



Articles de la même catégorie

 Pages : Top


56 Visites
0 Commentaires
Initiation au Xdialog
[15 mn de lecture - paru le 5/5/2005 11:58:55 AM - Public : Débutant]

En savoir plus


17 Visites
0 Commentaires
Gestion de fichiers avec le PHP
[40 mn de lecture - paru le 5/5/2005 5:32:49 AM - Public : Confirmé]

En savoir plus


17 Visites
0 Commentaires
Le framework QT
[30 mn de lecture - paru le 5/4/2005 7:47:42 PM - Public : Débutant]

En savoir plus

   Tous les Articles


SUPINFO Training Center peut vous proposer une formation ...

   Devenez Ingénieur Système Microsoft en 35 jours avec SUPINFO Training Center
   Devenez Certifiés Cisco en 13 jours avec SUPINFO Training Center
   Devenez Administrateur Système Microsoft avec SUPINFO Training Center
   Devenez Développeur Microsoft .NET en 13 jours avec SUPINFO Training Center



Powered by Campus-Booster Technology
Conditions d'utilisation & Copyright | Respect de la vie privée
© Copyright 1965-2006 Supinfo Paris, Paris Academy of Computer Science
Supinfo, Ecole Supérieure d'Informatique et Paris Academy Of Computer Science are trade marks.
23, rue de Château LANDON - 75010 PARIS - Phone : +33 (0) 153359 700 Fax : +33 (0) 153359 701

Web site autided by :