Jak dokonać konwersji wielkości liter w XSL?
<xsl:variable name="upper">UPPER CASE</xsl:variable>
<xsl:variable name="lower" select="???"/>
Jak dokonać konwersji wielkości liter w XSL?
<xsl:variable name="upper">UPPER CASE</xsl:variable>
<xsl:variable name="lower" select="???"/>
W XSLT 1.0 funkcje upper-case()
i lower-case()
nie są dostępne. Jeśli używasz arkusza stylów 1.0, powszechną metodą konwersji wielkości liter jest translate()
:
<xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'" />
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
<xsl:template match="/">
<xsl:value-of select="translate(doc, $lowercase, $uppercase)" />
</xsl:template>
XSLT 2.0 ma
upper-case()
ilower-case()
funkcje. W przypadku XSLT 1.0 możesz użyćtranslate()
:źródło
Implementacja .NET XSLT umożliwia pisanie niestandardowych funkcji zarządzanych w arkuszu stylów. W przypadku małych liter () może to być:
Załóżmy, że może to być powolne, ale nadal dopuszczalne.
Nie zapomnij włączyć obsługi wbudowanych skryptów dla transformacji:
źródło
return (stringValue ?? string.Empty).ToLower();
. Dzięki @Vladislav, nigdy nie wiedziałem, że możesz to zrobić!źródło
W przypadku kodowania znaków ANSI:
źródło
wielkie litery (ciąg) i małe litery (ciąg)
źródło