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?XSLT Hoja de estilo: cambiar texto a mayúscula
Respuesta
XSLT 2.0 tiene funciones fn: mayúsculas() y fn: minúsculas(). Sin embargo, en caso de que utilice de XSLT 1.0, puede utilizar 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>
+1, aunque es la misma estrategia que mi respuesta, mantener las variables de las letras es ciertamente una solución más reutilizable. – Welbog
Absolutamente hermoso y fácil :) –
Usted puede utilizar la función translate()
en XSLT 1.0:
<xsl:value-of select="translate(//some-xpath,
'abcdefghijklmnopqrstuvwxyz',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" />
Si tienes la suerte de tener acceso a XSLT 2.0, puede utilizar la función upper-case()
:
<xsl:value-of select="upper-case(//some-xpath)"/>
Ver el XPath function reference page para más detalles.
+1 ;-) – Tomalak
El nombre de Asker parece vagamente francés ... ¿qué le sucede a é? (Lo siento, no pude resistirme ...) – AakashM
@AakashM: Ese es el problema con la función 'translate()'. Tienes que especificar todas estas cosas tú mismo. 'mayúscula()' es una opción mucho mejor, pero no es lo suficientemente compatible. – Welbog
XPath 2.0 tiene fn:upper-case()
, que también realiza correlaciones de mayúsculas y minúsculas Unicode.
La forma más fácil y más limpio para lograr caso es transforma por medio de CSS.
construir una clase, como:
.upper { text-transform: uppercase; }
a continuación, utilizar la clase como span class:
<span class="upper">
<xsl:value-of select="myTextField" />
</span>
eso es todo :)
También puede utilizar otras transformadas:
text-transform: capitalize | uppercase | lowercase | none | inherit
Creo que el OP estaba creando un archivo de Excel; no HTML –
Puede crear archivos de Excel por medio de HTML. Creo que respetará CSS, pero no estoy 100% seguro. – iconoclast
Las soluciones no permiten la comparación de elementos de texto insensibles a mayúsculas y minúsculas en el documento, que a menudo es la razón para forzar el texto en un único caso consistente. Esta solución solo se aplicará a la representación de salida del resultado. – Pekka
U se una Asamblea como esto:
<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>
llaman como sigue: select="user:ToUpper(//root/path)"
Esto se puede utilizar en 1,0 o 2,0.
Gracias por las ediciones sugeridas mech. – SparrowEatsHawk
- 1. Error al cargar hoja de estilo: el análisis de una hoja de estilo XSLT no
- 2. Cómo aplicar una hoja de estilo XSLT en C#
- 3. Incluir una hoja de estilo xslt en una página html
- 4. Pasando parámetros a la hoja de estilo XSLT a través de .NET
- 5. xslt - extraer nodos hoja
- 6. Administración de XSLT: adjuntar metadatos a una hoja de estilo para la salida y los parámetros
- 7. Combinar varias hojas de estilo xslt
- 8. Posible agregar una hoja de estilo XSLT a un documento XML serializado?
- 9. ¿Cómo cambiar la hoja de estilo secundaria con Jquery?
- 10. Agregar hoja de estilo css a app_offline
- 11. Firefox 3 no aplica mi hoja de estilo xslt, pero otros navegadores lo hacen
- 12. Parámetros de hoja de estilos XSLT en hojas de estilo importadas
- 13. Pase el parámetro a la hoja de estilos XSLT
- 14. ¿Es posible utilizar una expresión Dynamic xPath en una hoja de estilo xslt?
- 15. Chrome no cargando la hoja de estilo
- 16. XSLT - Añadir espacio después minúscula seguida de la letra mayúscula
- 17. Fundido de una hoja de estilo a la otra
- 18. ¿Cómo obtengo mi hoja de estilo @import para anular la hoja de estilo principal?
- 19. Qt carga de hoja de estilo global?
- 20. Convertir XML a texto escapado en XSLT
- 21. Limitar hoja de estilo a una etiqueta y descendientes
- 22. Cuándo se agrega una hoja de estilo a document.styleSheets
- 23. Adjuntar una hoja de estilo a un iframe con jQuery
- 24. Crear hoja de estilo dinámica en línea
- 25. ¿Cómo modificar la hoja de estilo predeterminada?
- 26. cambiar el espacio de nombres de un elemento con XSLT
- 27. ¿Hoja de estilo XML predeterminada en Chrome?
- 28. HTML "link" (hoja de estilo) atributo disabled
- 29. Restablecer hoja de estilo con Twitter Bootstrap
- 30. Deshabilitar cuadro de texto sin cambiar de estilo?
posible duplicado de [¿Cómo puedo convertir una cadena en mayúscula o minúscula con XSLT?] (Http://stackoverflow.com/questions/586231/how-can-i-convert-a-string-to -upper-or-lower-case-with-xslt) – user