Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Functions operating on strings (4/15) >

Comparisons of two strings with function compare()

The function compare() returns integers 1, 0, and -1. Integer -1 is returned if according to the given rules(collation) for sorting strings the first string precedes the second one, integer 1 if it follows the second one, and 0 if both strings have the same position in the order (by default the Unicode code point collation is used).

The function codepoint-equal() returns "true" if two strings are equal according to Unicode code point collation.

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="compare(bbb,ddd)"/>
                  </xxx>
                  <yyy>
                        <xsl:value-of  select="compare(ddd,eee)"/>
                  </yyy>
                  <zzz>
                        <xsl:value-of  select="compare(ccc,eee)"/>
                  </zzz>
                  <ppp>
                        <xsl:value-of  select="codepoint-equal(ccc,eee)"/>
                  </ppp>
                  <ppp>
                        <xsl:value-of  select="codepoint-equal(ddd,eee)"/>
                  </ppp>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa>
            <bbb>How</bbb>
            <ccc>do</ccc>
            <ddd>you</ddd>
            <eee>do</eee>
      </aaa>
Output

      <xxx>-1</xxx>
      <yyy>1</yyy>
      <zzz>0</zzz>
      <ppp>true</ppp>
      <ppp>false</ppp>


Previous chapter: Arithmetics
Next chapter: Transforming strings with regular expressions
Previous page: Comparing starts and ends of strings
Next page: Comparisons of two strings with operators