Salut à tous,
Voilà mon problème. En plus du document XML source que je souhaite transformer, je dois récupérer des valeurs dans un autre fichier XML. Pour y faire appel j'utilise la fonction document().
Voilà ce que ça donne :
Gros problème : A partir de la ligne <xsl:for-each select="$descripteurs"> ma feuille XSLT se base sur les noeuds du document extérieur. Quand je fais ensuite <xsl:value-of select="@texte"/>, il prend bien la valeur de l'attribut "texte" d'un des item de la variable $descripteurs.
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
17
18
19
20
21 <xsl:variable name="descripteurs" select="document('../xml/Descripteurs.xml')/DESCRIPTEURS/ITEM" /> <xsl:template name="Descripteurs"> <xsl:for-each select="$descripteurs"> <li> <xsl:value-of select="@texte"/> <ul> <xsl:for-each select="VIDEOS_PUBLIEES/VIDEO"> <xsl:if test="TYPE_CONCERT = $typeMedia"> <xsl:for-each select="DESCRIPTEUR"> <xsl:if test="@Genre = $descripteurs/@texte"> <li style='font-size: medium'> <xsl:value-of select="../@TITRE" /> </li> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> </ul> </li> </xsl:for-each> </xsl:template>
Par contre quand je fais <xsl:for-each select="VIDEOS_PUBLIEES/VIDEO"> je souhaite qu'il fasse une boucle sur les noeuds VIDEO de mon XML source, et plus de la variable $descripteurs.
Je ne comprends pas comment les différencier (sans parler qu'après j'ai encore moult xs:for-each et xsl:value-of qui font se croiser les deux boucles.
Merci d'avance pour vos éclaircissements.
Partager