środa, 1 maja 2013

XSLT 1.0 - lowercase i uppercase


 XSLT 2.0 udostępnia dużo więcej wbudowanych funkcji niż wersja 1.0 tego standardu.
Są to między innymi funkcje lower-case() i upper-case():

<xsl:variable name="var">ŚmIeSzNy NaPiS</xsl:variable>
<xsl:value-of select="upper-case($var)"/>
Czasem jednak pojawia się konieczność poprawienia kodu, który napisany został w specyfikacji XSLT 1.0 i nie ma możliwości jej zmiany na nowszą. W takim wypadku część funkcji dostępnych w XSLT 2.0 trzeba będzie zaimplementować samemu. Niestety tutaj pojawia się kolejny problem - w starej XSLT nie ma możliwości tworzenia własnych funkcji. Całe szczęście możemy osiągnąć efekt jaki udostępniają lower-case() i upper-case() poprzez użycie funkcji translate().

Oto jak można to zrobić:
<xsl:variable name="lowerCase">
abcdefghijklmnopqrstuvwxyz
</xsl:variable> <xsl:variable name="upperCase">
ABCDEFGHIJKLMOPQERTUVWZYZ
</xsl:variable> <xsl:variable name="var">ŚmIeSzNy NaPiS</xsl:variable> <xsl:value-of select="translate($var, $lowerCase, $upperCase)"/>

Artykuł udostępniany na licencji CC-BY-SA-3.0

Brak komentarzy:

Prześlij komentarz