Bonjour à tous,
J'ai un script Ajax qui récupère un fichier XML et un fichier XSL et les transforme en XHTML. Il fonctionne correctement mais j'ai des problèmes avec la transformation XML/XSL.
J'ai crée le fichier XML suivant où les balises inbriquées dans "contenu" sont affichés selon un ordre définit par pos="X".
Le fichier XSL associé :
Dans ce code, tout fonctionne parfaitement. Cependant, ma mise en page est plus complexe, j'ai donc rajouté d'autres éléments dans "paragraphe".
Le XML est donc devenu le suivant (changement dans le premier paragraphe) :
J'ai également modifié le XSL en respectant la même logique que lorsque cela fonctionnait :
Mais maintenant, le script ne fonctionne plus alors que j'ai suivit le même processus. Lorsque je click sur le lien qui active la fonctino Ajax, plus rien ne s'affiche.
Si quelqu'un à la solution à ce problème,
LoK.
J'ai un script Ajax qui récupère un fichier XML et un fichier XSL et les transforme en XHTML. Il fonctionne correctement mais j'ai des problèmes avec la transformation XML/XSL.
J'ai crée le fichier XML suivant où les balises inbriquées dans "contenu" sont affichés selon un ordre définit par pos="X".
[...]
<centre>
<bloc>
<titre>Titre</titre>
<contenu>
<paragraphe pos="1">
<texte>Texte</texte>
</paragraphe>
<r_ligne pos="2"></r_ligne>
<paragraphe pos="3">
<texte>Texte</texte>
</paragraphe>
</contenu>
</bloc>
</centre>
Le fichier XSL associé :
[...]
<xsl:template match="centre">
<xsl:apply-templates select="bloc" />
</xsl:template>
<xsl:template match="bloc">
<div class="bloc">
<p class="h2"><xsl:value-of select="titre" /></p><br/>
<xsl:apply-templates select="contenu" />
</div>
</xsl:template>
<xsl:for-each match="contenu">
<xsl:sort select="@pos" data-type="number" />
<xsl:apply-templates select="paragraphe" />
<xsl:apply-templates select="r_ligne" />
</xsl:for-each>
<xsl:template match="paragraphe">
<p><xsl:value-of select="texte" /></p>
</xsl:template>
<xsl:template match="r_ligne">
<br />
</xsl:template>
</xsl:stylesheet>
Dans ce code, tout fonctionne parfaitement. Cependant, ma mise en page est plus complexe, j'ai donc rajouté d'autres éléments dans "paragraphe".
Le XML est donc devenu le suivant (changement dans le premier paragraphe) :
[...]
<centre>
<bloc>
<titre>Titre</titre>
<contenu>
<paragraphe pos="1">
<texte ord="1">Début Texte </texte>
<rs_mf ord="2">Texte mis en forme</rs_mf>
<texte ord="3"> Fin Texte</texte>
</paragraphe>
<r_ligne pos="2"></r_ligne>
<paragraphe pos="3">
<texte ord="1">Texte 1</texte>
</paragraphe>
</contenu>
</bloc>
</centre>
J'ai également modifié le XSL en respectant la même logique que lorsque cela fonctionnait :
<xsl:template match="centre">
<xsl:apply-templates select="bloc" />
<xsl:apply-templates select="bloc_fin" />
</xsl:template>
<xsl:template match="bloc">
<div class="bloc">
<p class="h2"><xsl:value-of select="titre" /></p><br/>
<xsl:apply-templates select="contenu" />
</div>
<img class="image" src="doc/img7.jpg" alt="" />
</xsl:template>
<xsl:template match="bloc_fin">
<div class="bloc">
<p class="h2"><xsl:value-of select="titre" /></p><br/>
<xsl:apply-templates select="contenu" />
</div>
</xsl:template>
<xsl:for-each match="contenu">
<xsl:sort select="@pos" data-type="number" />
<xsl:apply-templates select="paragraphe" />
<xsl:apply-templates select="r_ligne" />
</xsl:for-each>
<xsl:template match="paragraphe">
<xsl:sort select="@ord" data-type="number" />
<p>
<xsl:apply-templates select="texte" />
<xsl:apply-templates select="rs_mf" />
</p>
</xsl:template>
<xsl:template match="r_ligne">
<br />
</xsl:template>
<xsl:template match="texte">
<xsl:value-of select="." />
</xsl:template>
<xsl:template match="rs_mf">
<span class="green"><strong><xsl:value-of select="." /></strong></span>
</xsl:template>
</xsl:stylesheet>
Mais maintenant, le script ne fonctionne plus alors que j'ai suivit le même processus. Lorsque je click sur le lien qui active la fonctino Ajax, plus rien ne s'affiche.
Si quelqu'un à la solution à ce problème,
LoK.