Raccourcis : Contenu - rubriques - sous rubriques
EN FR

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 :


  $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 votre contenu comporte déjà cette balise, il faudra alors faire :


  $rep->sendXMLHeader = false;

Indiquer des feuilles de styles.

Vous pouvez attacher 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');