June 2008
Intermediate to advanced
986 pages
27h 8m
English
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'"/> ...
Read now
Unlock full access