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

Soyez le premier à donner votre avis sur cette source.

Vue 9 258 fois - Téléchargée 882 fois

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

A voir également

Ajouter un commentaire

Commentaires

karlvb
Messages postés
3
Date d'inscription
lundi 21 juillet 2003
Statut
Membre
Dernière intervention
7 novembre 2003
-
c'est quoi ton bordel ????
oliwer
Messages postés
1
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
13 septembre 2004
-
En effet, c'est tout à fait illisible...
cs_spyro666
Messages postés
137
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
28 août 2007
-
J'avoue que c'est pas la classe :s. Je crois que c'est une erreur Firefox mais bon, faut pas exagéré non plus.

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.