Wie identifizieren Sie doppelte Werte in eine numerische Sequenz mittels XPath 2.0?
Habe ich einen XPath-Ausdruck, der bietet mir eine Folge von Werten wie folgt:
1 2 2 3 4 5 5 6 7
Es ist leicht zu konvertieren, das auf einem Satz von eindeutigen Werten 1 2 3 4 5 6 7
mit distinct-values()
. Was ich aber extrahieren möchten, ist die Liste der doppelten Werte = 2 5
. Ich kann nicht denken, der eine einfache Möglichkeit, dies zu tun. Kann mir jemand helfen?
InformationsquelleAutor | 2008-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nutzen Sie diese einfache XPath 2.0-Ausdruck:
wo
$vSeq
ist die Reihenfolge der Werte, in denen wir suchen möchten Sie die Duplikate.Für die Erklärung, wie diese "funktioniert", sehen:
http://dnovatchev.wordpress.com/2008/11/16/xpath-2-0-gems-find-all-duplicate-values-in-a-sequence-part-2/
TLDR;
Dieses Bild können Sie eine visuelle Erklärung.
Wenn die Sequenz:
Dann die Bewertung der oben XPath-Ausdruck erzeugt:
2, 5, 7
InformationsquelleAutor Dimitre Novatchev
Was:
Diese iteriert durch die Elemente in der Sequenz, und gibt die Sache, wenn die Anzahl der Elemente in der Sequenz, die sind gleich, der Artikel ist größer als eins. Sie haben dann zu verwenden
distinct-values()
zum entfernen der Duplikate aus dieser Liste.InformationsquelleAutor JeniT
Berechnen Sie die Differenz zwischen dem ursprünglichen Satz und die Menge unterschiedlicher Werte. Dies ist der Satz von zahlen, die mehr als einmal vorkommen. Beachten Sie, dass die zahlen in diesem ResultSet sind nicht unbedingt unterscheidbar, wenn Sie auftreten, mehr als zweimal in der ursprünglichen Reihenfolge, also konvertieren wieder zu einer Reihe von unterschiedlichen Werten, wenn dies erforderlich ist.
InformationsquelleAutor GerG
Was ist xsl?
Ist es für Ihre Anforderung?
InformationsquelleAutor michal kralik