Le premier site francophone dédié au développement Pocket PC


XML et eVB (partie 3)
 
   

 

Partie 1
Partie 2
Partie 3

Nous allons apprendre dans cette 3ème partie à créer un fichier XML simple de toute pièce.

Un objet par noeud

Nous allons créer le fichier XML suivant :

<personnes>
  <personne ID="456">
    <nom>SIBUE</nom>
    <prenom>Stephane</nom>
    <website>www.codeppc.com</website>
  </personne>
  <personne ID="789">
    <nom>GATES</nom>
    <prenom>Bill</prenom>
    <website>www.microsoft.com</website>
  </personne>
</personnes>

ce qui nous donne :

ID nom prenom website
456 SIBUE Stephane www.codeppc.com
789 GATES Bill www.microsoft.com

Nous allons utiliser 3 objets différents pour créer ce fichier XML :

DOMDocument Le document XML (voir partie 1)
IXMLDOMElement Un noeud
IXMLDOMAttribute Un attribut de noeud

Création du document XML

Pour commencer, nous devons instancier un objet de type "DOMDocument", cet objet correspond au document XML :

Dim wDoc As DOMDocument

Rem Instanciation du document XML
Set wDoc = CreateObject("Microsoft.XMLDOM")

Création du noeud racine

Comme nous l'avons déjà dit précédement, un document XML est en fait encapsulé dans un noeud général, le noeud "Racine" qui porte dans notre exemple le nom "personnes". Nous devons créer cette racine qui sera le point de départ de notre fichier XML.

Pour créer un noeud (racine ou non), nous devons utiliser la méthode "createElement" de notre wDoc. Cette méthode nous retourne un pointeur sur un objet de type "IXMLDOMElement" que l'on va ensuite ajouter à son noeud père en utilisant la méthode "appendChild" :

Rem Il nous faut un objet Racine
Dim wRacine As IXMLDOMElement

Rem Création de la racine du document
Set wRacine = wDoc.createElement("personnes")

Rem Que l'on ajoute à son père, le document XML lui même
Call wDoc.appendChild(wRacine)

Création de la première personne

Pour créer la permière personne, nous avons besoin du noeud "personne", qui possède un attribut "ID", et de 3 noeuds "nom", prenom" et "website". Comme 3 noeuds précédement sités ont pour parent le noeud "personne", nous devons garder un référence constante de ce noeud, par contre, nous ne sommes pas obligé d'utiliser 3 variables différentes pour les champs :

Rem Nous avons besoin d'un noeud "personne", d'un attribut "ID"
Rem et d'une variable pour les 3 champs "nom", "prenom" et "website"
Dim wPersonne As IXMLDOMElement
Dim wChamp As IXMLDOMElement
Dim wAttribut As IXMLDOMAttribute

Rem Création de la première personne que l'on ajoute immédiatement à la racine
Set wPersonne = wDoc.createElement("personne")
Call wRacine.appendChild(wPersonne)

Rem création et ajout de l'attribut "ID" au noeud "personne
Call wPersonne.setAttribute("ID", "456")

Rem Création du noeud "nom" que l'on ajoute à "personne"
Set wChamp = wDoc.createElement("nom")
wChamp.Text = "SIBUE"
Call wPersonne.appendChild(wChamp)

Rem Création du noeud "prenom" que l'on ajoute à "personne"
Set wChamp = wDoc.createElement("prenom")
wChamp.Text = "Stephane"
Call wPersonne.appendChild(wChamp)

Rem Création du noeud "website" que l'on ajoute à "personne"
Set wChamp = wDoc.createElement("website")
wChamp.Text = "www.codeppc.com"
Call wPersonne.appendChild(wChamp)

Création de le deuxième personne

Pour créer la deuxième personne (Bill), il suffit d'utiliser les mêmes variables avec simplement des valeurs différentes pour l'attribut "ID" et les noeuds "nom", "prenom" et "website"

Enregistrement dans un fichier texte

Comme pour la lecture d'un fichier XML (voir partie 1), l'enregistrement est boguée. Nous allons utiliser les services des "FileSystem Controls" pour enregistrer notre fichier XML :

Rem On a besoin d'un objet "File" et d'une variable tampon
Dim wFile As File
Dim wBuffer As String

Rem On place dans notre variable tampon le fichier XML en texte brut
wBuffer = wDoc.xml

Rem Instanciation de l'objet "File"
Set wFile = CreateObject("FileCtl.File")

Rem Enregistrement du contenu de la variable tampon
Call wFile.Open("\My Documents\Personnes.xml", _
fsModeOutput, _
fsAccessWrite, _
fsLockReadWrite)
Call wFile.LinePrint(wBuffer)
Call wFile.Close

Conclusion de cette 3ème partie

Vous savez lire et écrire un fichier XML simple. Dans la prochaine partie nous allons voir comment lire correctement notre fichier XML "Personnes.xml"

Stéphane Sibué

 

 
       
   
 
   
Copyright 2001-2004 - Tous droits réservés
 
   

iPAQ est un produit de COMPAQ.
Visual Tools est un produit de Microsoft Corporation.
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.