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.
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.
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.