Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Conditional Expressions (2/4) >

Specification of test condition with "some ... in ... satisfies ..." or "every ... in ... satisfies ..."

Condition "some ... in ... satisfies ..." returns "true" if at least one item of the sequence which follows "in" satisfies the condition given after "satisfy". In the case of "every ... in ... satisfies ..." all items must satisfy the condition.

XSLT

      <xsl:stylesheet
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="2.0">
            <xsl:output  method="xml"
                        indent="yes"
                        omit-xml-declaration="yes"/>

            <xsl:template  match="/aaa">
                  <xxx>
                        <xsl:value-of  select="if (some $a in bbb satisfies $a[@z]) then 1 else 0"/>
                  </xxx>
                  <yyy>
                        <xsl:value-of  select="if (every $a in bbb satisfies $a[@z]) then 1 else 0"/>
                  </yyy>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa>
            <bbb/>
            <bbb  z="1"/>
            <bbb/>
      </aaa>
Output

      <xxx>1</xxx>
      <yyy>0</yyy>


Previous chapter: Comparisons
Next chapter: Elements and attributes
Previous page: Conditional evaluation with if ... then ... else
Next page: some and every are not opposites