Récuperer le contenu d'une requete sql en XML

Résolu
Perecastorr Messages postés 39 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 7 septembre 2010 - 21 janv. 2010 à 17:13
Perecastorr Messages postés 39 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 7 septembre 2010 - 25 janv. 2010 à 09:42
Bonjour,

J'ai une requete SELECT simple vers une table et j'aimerai récuperer le résultat de ma requete en xml.
C'est a dire passer d'une base de données vers un format comme cela :
<testtable>
2
<nom>test2</nom>
</testtable>
J'ai regarder les sources existantes mais ici mon problème est que je ne connais PAS a l'avance le nom et le nombre de champ de ma table.
J'ai pensé a faire une jolie fonction récursive pour parcourrir l'ensemble de mes champs mais j'avoue que coté algorithme je seche.

Donc existe-t-il un parametre a une requete sql qui permetterai l'envoi en xml directement ? ou une classe php qui ferai la meme chose ?
Sinon quelqu'un peut il m'éclairer sur le type d'algorithme a utilisé pour parcourrir l'ensemble des résultats de ma requete et créer le xml approprié?

Merci d'avance !

1 réponse

Perecastorr Messages postés 39 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 7 septembre 2010 1
25 janv. 2010 à 09:42
Bon voila j'ai trouvé par moi même, une petite fonction de conversion de tableau en xml :
function ArrayToXml($data, $rootNodeName = 'data', $xml=null)
{
if ($xml == null)
{
$xml = simplexml_load_string("<?xml version='1.0' encoding='utf-8'?><$rootNodeName />");
}
foreach($data as $key => $value)
{
if (is_numeric($key)) 
{
$key = "row_". (string) $key;

}
$key = preg_replace('/[^a-z]/i', '', $key);
if (is_array($value))
{
$node = $xml->addChild($key);
ArrayToXml($value, $rootNodeName, $node);
}
else
{
$value = htmlentities($value);
$xml->addChild($key,$value);
}
}
return $xml->asXML();
3
Rejoignez-nous