Section : Générer du XML quelconque
| « Générer du texte brut | ^ Les réponses classiques | Générer un flux de syndication RSS » |
jResponseXML permet de renvoyer au navigateur du XML. Son alias est “xml”
$rep = $this->getResponse('xml');
Pour indiquer le contenu xml, vous avez deux possibilités.
Attention : dans les deux cas, le XML doit être bien formé. Si ce n'est pas le cas, la réponse sera une erreur.
Générer à partir d'un template ¶
Par défaut, la propriété $content contient un objet jTpl. Vous devez indiquer le sélecteur de template dans la propriété $contentTpl.
$rep->contentTpl = 'monMOdule~monxml'; $rep->content->assign('foo','bla bla bla');
jResponseXml s'occupe de générer la balise ”<?xml ?>” donc vous n'avez pas à vous en occuper dans le template. Cependant, si le template comporte déjà cette balise, il faudra alors faire un
$rep->sendXMLHeader = false;
Génération sans template ¶
Si vous ne voulez pas utiliser un template, vous mettez le contenu xml, sous forme de chaine, dans la propriété $content.
$rep->content = '<mondoc> <title>jelix</title> </mondoc>';
jResponseXml s'occupe de générer la balise ”<?xml ?>” donc vous n'avez pas à vous en occuper. Cependant, si le template comporte déjà cette balise, il faudra alors faire un
$rep->sendXMLHeader = false;
Indiquer des feuilles de styles. ¶
Vous pouvez attachez des feuilles de styles CSS ou XSLT au document XML produit. Pour cela, vous devez utilisez les méthodes addCSSStyleSheet() ou addXSLStyleSheet(). Elles prennent toutes deux en premier argument l'url du fichier, et en deuxième argument optionnel un tableau associatif définissant les pseudo attributs à mettre sur la processing instruction générée.
$rep->addCSSStyleSheet('my.css', array('title'=>'super jolie')); $rep->addXSLStyleSheet('my.xsl');
