Aller au contenu

xml a partir d'une BDD


mina

Sujets conseillés

Bonjour, je suis vraiment NOVICE en xml

Ma question est la suivante :

Comment extraire des données d'une base de données(je travaille avec mysql) et les mettre dans un format XML et automatiquement.

exemple

Id Nom Prénom

1 Dupont Paul

Fichier xml

<id>1</id>

<nom>Dupont</nom>

<prenom>paul</prenom>

Lien vers le commentaire
Partager sur d’autres sites

Bonjour !!

C'est assez amusant que tu poses cette question maintenant car je réfléchis à ce problème en ce moment...

Je propose de poser le problème comme ceci :

On cherche à modéliser un nouveau type de données répondant aux conditions suivantes :

1/ le modèle doit permettre de décrire n'importe quel résultat de recherche dans une base de données.

2/ le modèle doit être conforme à la syntaxe XML.

Travaillant sous PHP 5, j'ai pensé à créer une nouvelle classe étendant la classe DOMDocument (et donc répondant au 2ème critère) dont chaque instance peut être construite à partir de n'importe quel tableau ayant la même forme que ceux renvoyés par la fonction mysql_fetch_array (1er critère).

Il reste à savoir quelle forme on veut donner aux résultats en XML. Je propose ceci :

<?xml version="1.0" encoding="UTF-8"?>
<result count="2">
<row id="1">
<id>1</id>
<nom>Dupont</nom>
<prenom>Paul</prenom>
</row>
<row id="2">
<id>2</id>
<nom>Durand</nom>
<prenom>Jean-Pierre</prenom>
</row>
</result>

Bien sûr le problème de l'encodage des données se pose. Quel encodage pour les données en XML ? Doit-il être le même que celui utilisé pour stocker les données dans la BDD ? Il y aura donc des histoires de détection et/ou de conversions.

Voilà, je n'ai évidemment pas parlé des détails d'implémentation, je viens tout juste de commencer à travailler sur le modèle.

A bientôt !

Lien vers le commentaire
Partager sur d’autres sites

créer une nouvelle classe étendant la classe DOMDocument

Certaines bases de données permettent de générer un fichier XML avec une simple commande SQL = une ligne de code :thumbsup: .

Sinon, on peut créer des noeuds Table, Ligne, Colonne, et construire un document DOM à l'aide des méthodes createElement et AppendChild en lisant en boucle les données de la base où à partir d'un array comme tu le suggères.

Pour ce qui est de l'encodage, perso j'utilise ISO-8859-1

Lien vers le commentaire
Partager sur d’autres sites

Certaines bases de données permettent de générer un fichier XML avec une simple commande SQL = une ligne de code.

C'est vrai, mais ce n'est pas le cas de tous les SGDB. De plus, PHP propose de son côté un modèle quasi identique (un simple array à 2 dimensions) pour toutes ses extensions de gestion de bases de données : fonctions mysql, mysqli, sqlite... (je ne compte pas PDO). C'est avec ce modèle que mon modèle interfacera.

Sinon, on peut créer des noeuds Table, Ligne, Colonne, et construire un document DOM à l'aide des méthodes createElement et AppendChild en lisant en boucle les données de la base

Qu'entends-tu par "en lisant en boucle les données de la base" ?

Pour ce qui est de l'encodage, perso j'utilise ISO-8859-1

Je comprends; mais à des fins de réutilisabilité, je ne peux pas parier que tout le monde utilise le même encodage.

Lien vers le commentaire
Partager sur d’autres sites

syntaxe sql server :

SELECT Table.champ FROM Table FOR XML RAW, ELEMENTS

Mais il existe des variantes, à voir la doc MS

Désolé je ne sais pas si c'est possible avec mysql.

Pour ce qui est de manipuler le DOM, il doit bien y avoir des tutoriels XML pour ton langage de prédilection.

Mon code est en vb si ça peut t'interesser ...

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...