Skip to content
David Maus M. A.

Today I Learned: Mengenoperatoren in XPath 2.0

David Maus, 23. Okt 2017

XPath 2.0 führt die Operatoren union, intersect und except ein, mit denen die Vereinungs-, Schnitt- bzw. Differenzmenge berechnet werden können. Diese Operatoren gelten aber nur für Knotenmengen.

Für den Vergleich von Mengen atomischer Werte (Zeichenketten usw.) listet Kay 2008, S. 631 die entsprechenden Äquivalente.

Mengenoperationen atomischer Werte
Vereinigungsmenge
distinct-values($A, $B)
Schnittmenge
distinct-values($A[. = $B])
Differenzmenge
distinct-values($A[not(. = $B)])

Kay 2008 (ebd.) führt auch die in XPath 1.0 möglichen Ausdrücke auf, um die Schnitt- bzw. Differenzmenge von Knotenmengen zu berechnen.

Mengenoperatoren in XPath 1.0
Schnittmenge
$A[count(. | $B) = count($B)]
Lies: Alle Elemente von $A für die gilt, dass die Vereinigungsmenge des Elements mit der Menge $B die selbe Anzahl an Knoten enthält wie die Menge $B; das Element also in $B enthalten ist.
Differenzmenge
$A[count(. | $B) != count($B)]

Literatur

Kay, Michael. XSLT 2.0 and XPath 2.0, 4th Edition. Indianapolis, IN: Wiley Publishing, 2008.