Returns those items from the sequence
$seq for which the supplied function
$f returns true.
filter($seq as item()*, $f as function(item()) as xs:boolean) ➔ item()*
The sequence to be filtered
function(item()) as xs:boolean
The filtering function (used to test each item in the sequence)
Links to W3C specifications
Available in XPath 3.0, XSLT 3.0, XQuery 3.0, and later versions. From Saxon 10, available in all editions. Implemented in Saxon-PE and Saxon-EE since Saxon 9.6.
Notes on the Saxon implementation
Available in Saxon 9.3 - 9.5 with altered argument order (
provided XPath 3.0 is enabled.
Saxon 10, unlike the W3C XSLT 3.0 specification, makes
fn:filter streamable under appropriate
circumstances. Calls on
fn:filter are streamable provided that the function supplied as the
predicate is either (a) a reference to a user-declared stylesheet function declared with
or (b) an inline function whose body is grounded and motionless. More specifically, if the predicate function
satisfies these conditions then the posture and sweep of the function call are the same as the posture and sweep of
the first argument.
Available in Saxon-HE from Saxon 10; in Saxon-PE/EE since 9.6.