Share via


Filter und Filtermuster

Einschränkungen und Verzweigungen können auf jede beliebige Auflistung angewendet werden, indem eine Filterklausel [Muster] zur Auflistung hinzugefügt wird. Der Filter entspricht der SQL WHERE-Klausel. Der Filter enthält ein Muster mit dem Namen Filtermuster. Das Filtermuster wird als boolescher Wert ausgewertet und wird für jedes Element in der Auflistung überprüft. Alle Elemente in der Auflistung, die den Filtermustertest nicht bestehen, werden in der Ergebnisauflistung weggelassen.

Wenn eine Auflistung in einen Filter gestellt wird, wird aus Gründen der Vereinfachung ein boolescher TRUE-Wert generiert, wenn in der Auflistung Member enthalten sind. Es wird ein FALSE-Wert generiert, wenn die Auflistung leer ist. Ein Ausdruck (beispielsweise author/degree) impliziert eine Funktion zum Konvertieren von Auflistungen in boolesche Werte. Diese wird mit TRUE ausgewertet, wenn ein <author>-Element mit einem untergeordneten Element mit dem Namen <degree> vorhanden ist.

Beachten Sie, dass eine beliebige Anzahl von Filtern auf einer angegebenen Ebene eines Ausdrucks angezeigt werden können. Leere Filter sind nicht zulässig.

Die Auswertung von Filtern erfolgt in Bezug auf einen Kontext. Das heißt, der Ausdruck book[author] bedeutet, dass jedes gefundene <book>-Element darauf überprüft werden muss, ob es über ein untergeordnetes <author>-Element verfügt. Ebenso bedeutet book[author = 'Bob'], dass jedes gefundene <book>-Element darauf überprüft wird, ob es über ein untergeordnetes <author>-Element mit dem Wert Bob verfügt. Der Wert des Kontexts kann auch unter Verwendung eines Punkts (.) überprüft werden. book[. = 'Trenton'] bedeutet beispielsweise, dass jedes gefundene Buch im aktuellen Kontext darauf überprüft werden muss, ob es über den Wert Trenton verfügt.

Beispiele

Ausdruck Bezieht sich auf

book[excerpt]

Alle <book>-Elemente mit mindestens einem <excerpt>-Element.

book[excerpt]/title

Alle <title>-Elemente in <book>-Elementen mit mindestens einem <excerpt>-Element.

book[excerpt]/author[degree]

Alle <author>-Elemente, die mindestens ein <degree>-Element enthalten und sich in <book>-Elementen mit mindestens einem <excerpt>-Element befinden.

book[author/degree]

Alle <book>-Elemente mit mindestens einem <author>-Element mit mindestens einem untergeordneten <degree>-Element.

book[excerpt][title]

Alle <book>-Elemente mit mindestens einem <excerpt>-Element und mindestens einem <title>-Element.

Siehe auch

Verweis

XPath-Beispiele

Konzepte

XML-Beispieldatei für XPath-Syntax (inventory.xml)