David Maus

Today I Learned: Mengenoperatoren in XPath 2.0

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)]
Differenzmenge $A[count(. | $B) != count($B)]

Literatur

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