[XSLT] derniere occurrence d'un noeud
Bonjour,
J'aimerai transformer un fichier XML afin de ne conserver que la dernière occurrence d'un noeud. Mon critère pour "grouper les noeuds" est sur la valeur d'un noeud fils du noeud à conserver.
J'y suis arrivé en codant en dur la valeur d'un noeud fils, mais je n'arrive pas à le faire sans la mettre en dur.
Un exemple:
<A>
<B>
<C1>1</C1>
<C2>toto</C2>
</B>
<B>
<C1>2</C1>
<C2>titi</C2>
</B>
<B>
<C1>1</C1>
<C2>tutu</C2>
</B>
<B>
<C1>2</C1>
<C2>tyty</C2>
</B>
<B>
<C1>2</C1>
<C2>tete</C2>
</B>
</A>
Je veux obtenir:
<A>
<B>
<C1>1</C1>
<C2>tutu</C2>
</B>
<B>
<C1>2</C1>
<C2>tete</C2>
</B>
</A>
Mon XSL avec la valeur de C1 en dur:
<xsl:template match="A">
<A>
<xsl:for-each select="B[C1='1'][position()=last()]">
<B>
<xsl:copy-of select="*" />
</B>
</xsl:for-each>
</A>
</xsl:template>
j'obtiens bien la derniere occurrence du noeud B dont la valeur de C1 est "1":
<A>
<B>
<C1>1</C1>
<C2>tutu</C2>
</B>
</A>
, mais je voudrais que cela fonctionne quelque soit la valeur de C1.
Merci pour votre aide, ça fait 2 jours que je fais plein d'essais sans succès (notamment en créant des keys...).