Comment faites-vous pour identifier les valeurs en double dans une séquence numérique à l'aide de XPath 2.0?
J'ai une expression XPath qui me fournit une séquence de valeurs comme celle ci-dessous:
1 2 2 3 4 5 5 6 7
Il est facile de convertir ce pour un ensemble de valeurs uniques 1 2 3 4 5 6 7
à l'aide de distinct-values()
. Cependant, ce que je veux extrait de la liste des valeurs en double = 2 5
. Je ne peux pas penser à un moyen facile de le faire. Quelqu'un peut-il aider?
OriginalL'auteur | 2008-09-25
Vous devez vous connecter pour publier un commentaire.
Utiliser cette simple expression XPath 2.0:
où
$vSeq
est la séquence de valeurs dans laquelle nous voulons trouver les doublons.Pour l'explication de la façon dont les "œuvres", voir:
http://dnovatchev.wordpress.com/2008/11/16/xpath-2-0-gems-find-all-duplicate-values-in-a-sequence-part-2/
TLDR;
Cette image peut être une explication visuelle.
Si la séquence est:
Ensuite d'évaluer le au-dessus de l'expression XPath produit:
2, 5, 7
OriginalL'auteur Dimitre Novatchev
Ce sujet:
Ce parcourt les éléments de la séquence, et renvoie l'élément si le nombre d'éléments dans la séquence qui sont égaux à l'élément en question est supérieur à un. Ensuite, vous devez utiliser
distinct-values()
pour supprimer les doublons de la liste.OriginalL'auteur JeniT
Calculer la différence entre le jeu original et l'ensemble des valeurs distinctes. C'est l'ensemble de nombres qui se produisent plus d'une fois. Notez que les chiffres dans ce jeu de résultats ne sont pas nécessairement distinctes si elles se produisent à plus de deux fois dans la séquence d'origine afin de convertir à nouveau à un ensemble de valeurs distinctes, si cela est nécessaire.
OriginalL'auteur GerG
Ce sujet xsl?
Est-il applicable à votre demande?
OriginalL'auteur michal kralik