xsl ver validaciones transformacion que programacion mapeo hojas generar conceptos basicos archivo xslt coding-style uppercase

xslt - ver - validaciones xsl



Hoja de estilos XSLT: cambiar el texto a mayúsculas (5)

Estoy usando una hoja de estilo XSLT para crear un documento de Excel a partir de un archivo XML. Uno de los valores que estoy extrayendo quiero mostrarlo en mayúscula. ¿Cómo es esto posible?


La forma más fácil y limpia de lograr transformaciones de casos es a través de CSS.

construir una clase, como:

.upper { text-transform: uppercase; }

luego usa la clase como clase span:

<span class="upper"> <xsl:value-of select="myTextField" /> </span>

Eso es :)

También puedes usar otras transformaciones:

text-transform: capitalize | uppercase | lowercase | none | inherit


Puede usar la función translate() en XSLT 1.0:

<xsl:value-of select="translate(//some-xpath, ''abcdefghijklmnopqrstuvwxyz'', ''ABCDEFGHIJKLMNOPQRSTUVWXYZ'')" />

Si tiene la suerte de tener acceso a XSLT 2.0, puede usar la función upper-case() :

<xsl:value-of select="upper-case(//some-xpath)"/>

Vea la página de referencia de la función XPath para más detalles.


Use una Asamblea como esta:

<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>

Llámelo de la siguiente manera: select="user:ToUpper(//root/path)"

Esto se puede usar en 1.0 o 2.0.


XPath 2.0 tiene fn:upper-case() , que también hace mapeos de casos correctos de Unicode.


XSLT 2.0 tiene funciones fn: mayúsculas () y fn: minúsculas (). Sin embargo, en caso de que esté usando XSLT 1.0, puede usar 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>