Je suis en train de faire un petit site web, avec le contenu des pages en xml, et j'ai quelques problemes pour generer un rendu xhtml correct.

mon parseur est très simple, le voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
function display_article( $xml, $xsl ) {
    $c = new XSLTProcessor();
    $c->importStyleSheet(DOMDocument::load($xsl));
    echo $c->transformToXML(DOMDocument::load($xml));
}
voici l'extrait de l'xslt qui ne veux pas marcher :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<xsl:template match="chapter">
   <div class="chapter">
      <xsl:if test="title | @title">
         <h2><xsl:apply-templates select="title/text() | @title" /></h2>
      </xsl:if>
      <xsl:apply-templates />
   </div>
</xsl:template>
un bout d'xml pour l'exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
<chapter>
    <title>titre</title>
    <!-- plein de choses -->
</chapter>
je voudrait avoir au final ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<div class="chapter"><h2>titre</h2>
<!-- plein de choses -->
</div>
mais je me retrouve avec ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
<div class="chapter"><h2>titre</h2>
<title>titre</titre>
<!-- plein de choses -->
</div>
j'ai essayé pas mal de choses, mais rien ne marche... voila, je veux juste que le titre ne s'affiche pas 2 fois... mais je ne sais pas comment m'y prendre.

Merci de votre aide.