Genxml : génère un document xml à partir d'une base de données.

Description

Vous permet d'exporter n'importe quelle base de données vers un fichier XML.
Vous définissez la forme du document XML à l'aire d'un fichier de description.
Voici un extrait, vous en saurez plus en observant le fichier Zip :

--------------------------------------------------------------------------------------
© Copyright Ludovic Lenne - 2003

L'objet : LENNE.GenXML

Voyons comment exporter des données vers un fichier XML, avec GenXML.
Nous utiliserons pour ce tutoriel, une base Access ( MyDb.mdb ) ainsi que la Class GenXML. Cette base est constituées de cinq tables (auteurs, editeurs, ventes, titres, titre_auteur).

1 - Dans un premier temps nous allons exporter les titres parus chez les différents éditeurs. Le fichier XML prendra cette forme :

<catalogue>
   <editeur name="nom">
      <livres>
         <titre>titre</titre>
         ...
      </livres>
   </editeur>
</catalogue>

Créons un fichier que nous allons nommer editeur_titres.gen. Les commentaires qui apparaissent ci-dessous ne doivent pas être dans le fichier finale.

// Définition de l'encodage du document XML.
[Encoding=iso-8859-1/]
// Définition de la version du document XML.
[Version=1.0/]
// Cette balise identifie le début de la description du document XML à créer.
[Gen]
   // Racine du document XML
   <catalogue>
      // Cette balise indique que nous allons créer des enfants pour <catalogue>.
      [ChildNodes]
         // Cette balise indique la chaine de connexion à la base de données.
         // Nous utiliserons toujours la même.
         // Nous définirons la chaine de connexion plus tard dans le fichier php.
         // Nous ferons donc ici appelle à la connexion par défaut.
         [Connection/]
         // Cette balise nous permet de spécifier la requête que nous allons faire dans la base de données.
         // Nous allons récupérer les noms de différents éditeurs, et leur identifiants.
         // Les identifiants sont ici nécessaires pour assurer la patérnité avec ses enfants.
         [Source]SELECT editeurs.pub_name, editeurs.pub_id FROM editeurs/Source
         // Nous n'avons ici aucun filtre à effectuer sur les données récupérées.
         [Where/]
         // Définissons maintenant les enfants de catalogue.
         // Cette balise définie le début de la desctiption des enfants de <catalogue>.
         [Nodes]
            // Nous decrivons l'enfant editeur de catalogue avec comme attribut son nom.
            // [Value[pub_name]] indique où doit être insérer le nom de l'éditeur.
            <editeur name="[Value[pub_name]]">
               <livres>
                     // Indiquons maintenant les enfants de <editeur><livres>.
                  [ChildNodes]
                           [Connection/]
                     // Nous récupérons les titres des livres et les identifiants des éditeurs de ces livres.
                     // Les identifiants sont ici nécessaires pour assurer la descendance avec les parents éditeurs.
                     [Source]SELECT titres.title, titres.pub_id FROM titres/Source
                     // Nous allons à l'aide du filtre sélectionner les titres pour chaque éditeur.
                     [Where]pub_id = '[Value[pub_id]]' /Where
                     // Définissons maintenant les enfants de <editeur>.
                     // Cette balise défini le début de la desctiption des enfants de <editeur><livres>.
                           [Nodes]
                        // [Value[title]] indique où doit être insérer les titres des livres de l'éditeur.
                        // [Value[title]] est égal à la valeur du champ [title].
                        <titre>[Value[title]]</titre>
                     // Fermons la description des titres
                     /Nodes
                     // Fermons la liste des titres
                  /ChildNodes
               </livres>
            </editeur>
         // Fermons la description des editeurs
         /Nodes
      // Fermons la liste des editeurs
      /ChildNodes
   </catalogue>
// Fermons la description du document XML
/Gen

Dans la construction du fichier Gen, vous aurez constaté que les relations sont traitées en dehors de la requête. C'est à dire sans INNER JOIN, qui est remplacé par [Where], qui définit ainsi la relation de hiérachie entre noeuds enfants et parents.

etc...

Conclusion :


vous pourrez retrouver plus d'information sur le site http://genxml.lenne.org/

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.