David Maus M. A.

Digital Humanities Publishing

Today I Learned: Mengenoperatoren in XPath 2.0

David Maus, 23.10.2017 · Permalink

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.