J'utilise une feuille de style XSLT pour créer un document Excel à partir d'un fichier XML. L'une des valeurs que je tire, je veux l'afficher en majuscules. Comment est-ce possible?
XSLT 2.0 a les fonctions fn: majuscule () et fn: minuscule (). Cependant, si vous utilisez XSLT 1.0, vous pouvez utiliser translate ():
<xsl:template match="/">
<xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" />
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
<xsl:value-of select="translate(doc, $smallcase, $uppercase)" />
</xsl:template>
Vous pouvez utiliser la fonction translate()
dans XSLT 1.0:
<xsl:value-of select="translate(//some-xpath,
'abcdefghijklmnopqrstuvwxyz',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" />
Si vous avez la chance d'avoir accès à XSLT 2.0, vous pouvez utiliser la fonction upper-case()
:
<xsl:value-of select="upper-case(//some-xpath)"/>
Voir page de référence de la fonction XPath pour plus de détails.
XPath 2.0 a fn:upper-case()
, qui fait également des mappages de casse Unicode corrects.
Utilisez un assemblage comme celui-ci:
<msxsl:script implements-prefix="user" language="C#">
<!--{%Assembly%}-->
<![CDATA[
public string ToUpper(string stringValue)
{
string result = String.Empty;
if(!String.IsNullOrEmpty(stringValue))
{
result = stringValue.ToUpper();
}
return result;
}
]]>
</msxsl:script>
Appelez-le comme suit: select="user:ToUpper(//root/path)"
Cela peut être utilisé dans 1.0 ou 2.0.