Raccourcis : Contenu - rubriques - sous rubriques
EN FR

jResponseXML permet de renvoyer au navigateur du XML. Son alias est "xml".


$rep = $this->getResponse('xml');

Le XML peut être renvoyé à partir d'un template, ou d'un contenu généré "à la main". Dans les deux cas, le XML doit être bien formé. Si ce n'est pas le cas, la réponse sera une erreur.

jResponseXml s'occupe de générer la balise <?xml ?> donc vous n'avez pas à vous en occuper, sauf si vous indiquez que vous vous en chargez :


  $rep->sendXMLHeader = false;

Le type mime envoyé est par défaut text/xml. Vous pouvez bien sûr changer cela en appelant la méthode addHttpHeader :


  $rep->addHttpHeader('Content-Type', 'application/xml');

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');

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>';

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');

Note : comme pour la réponse HTML, vous pouvez indiquer des feuilles de styles qui soient stockées dans le www/ de l'application ou du module. Voir la documentation sur les vues HTML pour savoir comment récupérer ces URLs.