Ça vaut ce que ça vaut, et ce n'était pas l'élégance qui primait lors de l'écriture de cette mini-classe mono-méthode.
Vous me pardonnerez donc, je l'espère, l'aspect un rien brut de décoffrage de la solution, mais je pense qu'il peut être intéressant de la partager telle quelle. Pas de documentation non plus, cet embryon de code devrait parler de lui-même.
N'hésitez pas à me faire part de vos améliorations.
class rsUtils
{
/**
* Create a XML chunk from a standard record object.
*
* @param record A standard record object (Cf. Clearbricks dbLayer)
* @param array An array of properties to exclude from the dump (default to an empty array)
* @return string A string containing the XML chunk.
*
*/
public static function recordsetToXML($rs,$exclude = array())
{
if (!$rs || !$rs instanceof record) {
throw new Exception(__('Not a valid record object'));
}
$columns = $rs->columns();
if (is_array($exclude)) {
$columns = array_diff($columns,$exclude);
}
$xml = "<recordset>
";
while ($rs->fetch()) {
$xml .= "<record>
";
foreach ($columns as $col) {
$xml .= sprintf('<%1$s><![CDATA[%2$s]]></%1$s>'."
",$col,$rs->f($col));
}
$xml .= "</record>
";
}
$xml .= "</recordset>
";
return $xml;
}
}
Commentaires
#1
Osku
mercredi 16 septembre 2009, 16:33
Pep #ftw