[2.0] Quantified Expressions—some and every
XPath 2.0 provides the some
and every
operators to perform a test against a sequence. The some
operator returns true
if the test is true for at least one
item in the sequence, while every
returns false
if the test is false
for at least one item in the sequence. Here is an example of the two
operators:
<?xml version="1.0"?> <!-- some-every.xsl --> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xsl:output method="text"/> <xsl:variable name="English-months" as="xs:string*" select="('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December')"/> <xsl:template match="/"> <xsl:text>
An example of the XPath 2.0 every and </xsl:text> <xsl:text>some operators:

</xsl:text> <xsl:text> If ANY month name has a string-length() </xsl:text> <xsl:text>
 greater than 4, print 'Yes,' otherwise</xsl:text> <xsl:text>
 print 'No'

 </xsl:text> <xsl:value-of select="if (some $m in $English-months satisfies (string-length($m) > 4)) then 'Yes' else 'No'"/> <xsl:text>
</xsl:text> <xsl:text>

 If EVERY month name has a string-</xsl:text> <xsl:text>length() 
 greater than 4, print 'Yes,' </xsl:text> <xsl:text>otherwise
 print 'No'

 </xsl:text> <xsl:value-of select="if (every $m in $English-months satisfies (string-length($m) > 4)) then 'Yes' else 'No'"/> ...
Get XSLT, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.