Raccourcis : Contenu - Menu du contenu - rubriques - sous rubriques
fr

Jelix
Framework PHP5

Guide du développeur

Recherche

Wiki

Guide du développeur
Jelix 1.0.12

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');
fr/manuel-1.0/responsexml.txt · Dernière modification: 2008/09/27 14:24 par laurent