Eliminar el avance de línea (LF) del nodo XML mediante XSLT
Pregunta
Tengo lo siguiente en un nodo XML:
<TR_Comment>XXX YYY ZZZ
</TR_Comment>
(como puede ver, hay un avance de línea)
Mi XSLT es realmente simple:
<xsl:value-of select="a:Common/a:TR_Comment"/>
¿Cómo puedo eliminar el avance de línea usando XSLT?
Solución
Hace normalize-space(a:Common/a:TR_Comment)
¿haces lo que quieres?
Si está realmente interesado en preservar el espacio en blanco interno, puede volverse un poco poco elegante.Una forma es hacer una plantilla recursiva que use string-length
y substring
para seguir eliminando caracteres desde el final, uno a la vez, hasta que no queden espacios en blanco al final.
Otros consejos
Uso :
translate(., ' ', '')
cuando se evalúa esta expresión, el resultado es el valor de cadena del nodo actual del que se eliminan los caracteres NL o CR.
Tenga en cuenta que no se eliminan ni modifican otros caracteres, por lo que esta es una solución más precisa y puede ser preferible en algunos casos a normalize-space()