[XSLT] Comment tester si on a déjà recontré un noeud
Bonjour,
j'ai un fichier xml de résultats de recherche. Il est de ce type
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
<?xml version='1.0' encoding="ISO-8859-1" ?>
<TEST>
<SERVICE num="1" name="ke">
<NBANS value="10" start="1" end="10"/>
<R num="0">
<TITLE>sdfdf</TITLE>
<URL>www.google.fr</URL>
<RESUME>blab bla bla</RESUME>
</R>
<R num="1">
<TITLE>sdfdf</TITLE>
<URL>www.google.fr</URL>
<RESUME>blab bla bla</RESUME>
</R>
</SERVICE>
<SERVICE>
<HELLO>ssffsfhrhh
</HELLO>
</SERVICE>
</TEST> |
voici mon xsl qui m'affiche le nombre de résultat puis la liste des résultats avec le titre , l'url et le résumé:
Code:
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 27 28 29 30 31 32 33 34 35 36
|
<xsl:template match="SERVICE">
<div>
<xsl:apply-templates select="NBANS" />
<br /><br />
<xsl:apply-templates select="R" />
</div>
</xsl:template>
<xsl:template match="NBANS">
<div class="resultat">
<xsl:text> Il y a </xsl:text>
<xsl:value-of select="@value" />
<xsl:text> résultat(s) correspondant(s) </xsl:text><br /><br />
<xsl:text> Documents </xsl:text>
<xsl:value-of select="@start" />
<xsl:text> à </xsl:text>
<xsl:value-of select="@end" />
<xsl:text> sur </xsl:text>
<xsl:value-of select="@end" />
</div>
</xsl:template>
<xsl:template match="R">
<div class="moteur_resultat">
<a href="{URL}"><xsl:value-of select="@num +1" /><xsl:text disable-output-escaping="yes">&nbsp;-&nbsp;</xsl:text><xsl:value-of select="TITLE" /></a><br />
<xsl:value-of select="RESUME" />
<br /><br />
</div>
<br />
</xsl:template>
</xsl:stylesheet> |
Le probleme est que je voudrais afficher seulement le contenu du premier noeud service et ignoré le second qui ne contient rien d'intéressant car sinon j'ai une liste de résultat correcte et une seconde qui ne va pas a cause du second noeud service.
Merci pour votre aide.