Étant donné que SQL est une entrée, je dois interroger une base de données PostgreSQL et renvoyer les résultats au format XML. Je l'ai fait avec le code suivant:Transformation des résultats de PostgreSQL Query en XML, en utilisant PHP DOM
<?php
$link = "host=localhost dbname=company user=pgsql password=password";
$connect = pg_connect($link);
$query = "SELECT * FROM customer";
$result = pg_query($connect, $query);
$doc = new DomDocument("1.0");
$root = $doc->createElement('data');
$root = $doc->appendChild($root);
while($row = pg_fetch_assoc($result)){
$node = $doc->createElement('collection');
$node = $root->appendChild($node);
foreach($row as $fieldname => $fieldvalue){
$node->appendChild($doc->createElement($fieldname, $fieldvalue));
}
}
$doc->save("cust.xml");
?>
Finalement, j'appliquerai une feuille de style CSS directement au document XML. Je vais spécifier les informations de style pour chaque noeud 'collection'. Cependant, il est possible qu'il y ait des sous-collections de collections, et même des sous-sous-collections et ainsi de suite.
(donc: Maître, détail, sous-détail, sous-sous-détail, etc.)
Le problème est, mon code ne génère XML Master, détail, sous-détail. Comment puis-je modifier mon code afin que le XML généré «capture» toujours tous les niveaux des données?
... Merci
Oui, je fais référence à une relation hiérarchique. Par exemple, avec mon code actuel, je peux voir tous les attributs, des champs, de la table "Client". Cependant, que se passerait-il si l'un des attributs du client était «Adresse» et que le client avait plusieurs adresses? Cela devrait apparaître comme ...
<data>
<collection>
<fname>Joe</fname>
<lname>Smith</lname>
<address>
<address A> 123...</address A>
<address B> 234...</address B>
</collection>
</data>
Je suis en train de modifier mon code pour « pick up » sur le fait que l'adresse, bien qu'un attribut, a sous-attributs ...