una texto eliminar convertir codigo charcodeat caracteres cadena javascript xml xslt xpath

eliminar - convertir codigo ascii a texto javascript



¿Desea eliminar todos los caracteres / n / r de un nodo XSLT? (2)

La función XPath de normalize-space () debe hacer lo que desee.

¿Me preguntabas si podrías ayudarme, por favor? Tengo un nodo en xml que es el que se sigue

$ LOG: 08880xbpnd $
fhdsafidsfsd
df
Dakota del Sur
fsd
F
Dakota del Sur
fsd

Me preguntaba si, de todos modos, hay que hacer que todo el texto pase a una línea para que luego pueda pasarse a una función de JavaScript. por lo que resultaría así

$ LOG: 08880xbpnd $ fhdsafidsfsddfsdfsdfsdfsd

Desafortunadamente, la función normalize-space() (utilizada en la respuesta de andynormancx) hace más que eliminar nuevas líneas .

Elimina todos los espacios en blanco iniciales y finales y reemplaza cualquier grupo de espacios blancos contiguos interiores con un solo carácter de espacio .

En muchos casos, queremos borrar solo un tipo de un carácter de espacio en blanco (como en el caso actual - nuevas líneas (CR + LF se normaliza automáticamente al leer el analizador XML a solo LF).

La forma correcta y segura de hacerlo es mediante el uso de la función estándar XPath translate() :

translate(., ''
'', '''')

devuelve una cadena obtenida del valor de cadena del nodo actual en el que se elimina cualquier carácter de nueva línea.

Aquí hay un ejemplo :

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" indent="yes"/> <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> <xsl:template match="text()"> <xsl:value-of select="translate(.,''&#xA;'','''')"/> </xsl:template> </xsl:stylesheet>

Cuando se aplica la transformación anterior en este documento XML fuente :

<t> $LOG: 08880xbpnd $ "embedded blanks must stay" df sd fsd f sd fsd </t>

El resultado es solo en una línea, según se requiera, y todos los espacios integrados se dejan intactos :

<t>$LOG: 08880xbpnd $"embedded blanks must stay"dfsdfsdfsdfsd</t>