Bonjour,
J'ai un problème dont je ne trouve pas la solution. Je suis sur que j'ai loupé un truc mais je ne sais pas quoi. cela concerne les variables.
Mon XML ressemble a ca :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <FICHEOFF ID="SOCI20F20_014_J" maj="12">
<CARTOUCHE>
<NUMERO>20.14j</NUMERO>
<TITRE>Prêt</TITRE>
<REFERENCE>Code
</REFERENCE>
</CARTOUCHE>
<TITREF Type="Chapitre">Chapitre VIII
</TITREF>
<PARA>[...]</PARA>
<ARTICLE>
<NUM-ART ID="SOCI20F20_014_J_ARTR318-2">Art. R. 318-2</NUM-ART>
<PARA>blabla</PARA>
</ARTICLE>
</FICHEOFF> |
Et la XSL me permettant de traiter ca :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <xsl:template match="FICHEOFF">
<table border="0" cellpadding="5" cellspacing="1" width="100%">
<tr>
<td>
<span class="FD-Arial-11-B-Noir">
<xsl:value-of select="CARTOUCHE/REFERENCE"/>
</span>
<br/>
<br/>
<xsl:copy-of select="CARTOUCHE/TITRE"/>
</td>
<td align="center" bgcolor="#EFEFEF">
<p>
<span class="FD-Arial-10-B-Noir">FICHE
<br/>
</span>
<span class="FD-Arial-12-B-Noir">
<xsl:value-of select="CARTOUCHE/NUMERO"/>
</span>
</p>
</td>
</tr>
</table>
<xsl:apply-templates select="//FICHEOFF/child::*/*[name() != 'CARTOUCHE']"/>
</xsl:template> |
Si je met un simple "<xsl:apply-templates/> a la fin tout le contenue de la cartouche est remis juste en dessous ce que je voudrait éviter
Dans l'ideal je voudrait arriver a faire ca :
<xsl:value-of select="$texte" />
Avec
1 2
| <xsl:variable name ="textesimple" select="PARA | TABLEAU | EQN"/>
<xsl:variable name ="texte" select="$textesimple | ENC | OBSERVATION"/> |
Sachant que ces vararibles doivent pouvoir être atteinte en plusieurs endroit (xsl:template match="TOTO">) dans ma XSL
Donc ou dois je mettre mes deux ligne de varaibles ??? Apparement je peut les mettre juste en dessous de "<xsl:output method="html"/>" ...
Mais sinon je peut aussi me contenter d'une autre solution peut être plus facile. Si je pouvait appliquer toutes les balises qui sont contenue dans un noeud mais en évitant le première noeud(CARTOUCHE)
J'ai bien un truc comme ca :
<xsl:apply-templates select="//FICHEOFF/child::*/*[name() != 'CARTOUCHE']"/>
ou comme ca :
<xsl:apply-templates select="//FICHEOFF/child::*/*[position() != 1]"/>
Mais rien ne marche
Le problème se repose dans les éléments "ARTICLE" (avec "NUM-ART"), donc il me faudrait une méthode qui peut s'appliquer sur chacun.
Je pensait décomposer au maximum mes traitement XSL mauis je ne sais pas si c'est vraiment la meilleur solution.
Merci
Partager