2008-09-25 13 views

Répondre

1

Calculez la différence entre votre ensemble d'origine et l'ensemble des valeurs distinctes. C'est l'ensemble des nombres qui se produisent plus d'une fois. Notez que les nombres de cet ensemble de résultats ne sont pas nécessairement distincts s'ils se produisent plus de deux fois dans la séquence d'origine. Par conséquent, convertissez-les en un ensemble de valeurs distinctes si nécessaire.

3

Que dire:

distinct-values(
    for $item in $seq 
    return if (count($seq[. eq $item]) > 1) 
     then $item 
     else()) 

Cette itère les éléments dans la séquence, et renvoie l'élément si le nombre d'éléments dans la séquence qui sont égales à ce point est supérieur à un. Vous devez ensuite utiliser distinct-values() pour supprimer les doublons de cette liste.

+2

Salut Jeni, il y a une Semble solution plus simple :) vSeq $ [indice de ($ vSeq,.) [2]] Cheers, Dimitre –

-1

Qu'en est-il de xsl? Est-il applicable à votre demande?

<xsl:for-each select="/r/a"> 
     <xsl:variable name="cur" select="." /> 
     <xsl:if test="count(./preceding-sibling::a[. = $cur]) > 0 and count(./following-sibling::a[. = $cur]) = 0"> 
      <xsl:value-of select="." /> 
     </xsl:if> 
    </xsl:for-each>