Bonjour,

j'ai un XML avec une arborescence de ce type

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
  NOEUD1
      NOEUD2
          NOEUD3/
          TEXTE1...
          NOEUD3/
          TEXTE2...
     /NOEUD2
  /NOEUD1

pour chaque NOEUD1, je fais un <xsl:apply-templates/>
Ensuite dans le <xsl:template match="NOEUD2">,
comment faire pour afficher le contenu du premier NOEUD3 puis le TEXTE1 puis le contenu du second NOEUD3 puis le TEXTE2
(autrement dit en respectant l'ordre du XML)?


J'ai essayé avec un appel à <xsl:template match="NOEUD3"> avec <xsl:apply-templates/> dans <xsl:template match="NOEUD2">
mais comme prévu, le traitement du NOEUD3 se fait après l'affichage des différents textes.


Voici à quoi ressemble mes templates :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<xsl:template match="NOEUD2">
  <br/>
  <xsl:value-of select="NOEUD2"/>
  <xsl:variable name="n" select="@N"/>
  <xsl:value-of select=".....($n))"/>
  <xsl:value-of select="$n"/>
  <xsl:apply-templates/>
</xsl:template>
 
 
<xsl:template match="NOEUD3">
  <xsl:value-of select="NOEUD3"/>
  <xsl:variable name="s" select="@S"/>
  <xsl:value-of select="substring(......, 1, $s)"/>
</xsl:template>