• [^] # Re: xsl:output

    Posté par . En réponse au message Soucis avec des fichiers xml. Évalué à 2.

    Bon, j'ai fait quelques investigations, sans succès pour l'instant.
    Si ça peut servir à d'autres, la bonne version pour produire du xhtml depuis une feuille xsl doit contenir au moins ces éléments :


    <xsl:output method="xml"
    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd"
    doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" indent="yes"/>


    J'ai donc corrigé toutes mes feuilles de styles de façon à ce qu'elles contiennent ces lignes.
    Pensant que mon problème de doctype placé en plein milieu de ma feuille html provenait de l'instanciation multiple d'un objet parseur, j'ai modifié mes fonctions de telle sorte qu'elles ne crééent plus un objet grâce à la fonction xslt_create. Cet objet est maintenant sorti des fonctions, dans la session. Mais ça ne résoud pas mon problème pour autant.
    Je ne comprend pas pourquoi il me sort le doctype à chaque fois.
    Comme je n'appelle pas toujours les feuilles de styles dans le même ordre, ça me fait un peu ch... de modifier plus avant mes feuilles de style.

    Il doit donc bien y avoir une option quelque part pour que ce foutu parseur ne sorte pas la déclaration du doctype systématiquement, mais je n'ai toujours pas trouvé le mot magique à employer.

    Pour l'instant, les fonctions suivantes sont utilisées à chaque parsage de feuille xml :

    $_SESSION['xsltProcessor'] = new XSLTProcessor();
    $xml = new DomDocument;
    $xsl = new DomDocument;
    $xml->loadXML($args[$xml_arg]);
    $xsl->loadXML($args[$xsl_arg]);
    $xsltproc->importStyleSheet($xsl);
    $processed = $xsltproc->transformToXML($xml);
    if (!$processed)
    print ("Erreur XSLT ...");
    else
    print ($processed);

    Voilà... Si ça peut éclairer quelqu'un qui peut m'aider....