Rimuovere l'avanzamento riga (LF) dal nodo XML utilizzando XSLT
Domanda
Ho quanto segue in un nodo XML:
<TR_Comment>XXX YYY ZZZ
</TR_Comment>
(come puoi vedere c'è un avanzamento riga)
Il mio XSLT è davvero semplice:
<xsl:value-of select="a:Common/a:TR_Comment"/>
Come posso rimuovere l'avanzamento riga utilizzando XSLT?
Soluzione
normalize-space(a:Common/a:TR_Comment)
fa quello che vuoi?
Se ti interessa davvero preservare gli spazi vuoti interni, può diventare un po 'inelegante.Un modo è creare un modello ricorsivo che utilizzi string-length
e substring
per continuare a rimuovere i caratteri dalla fine, uno alla volta, fino a quando non ci sono spazi vuoti finali.
Altri suggerimenti
Usa :
translate(., ' ', '')
quando questa espressione viene valutata, il risultato è il valore stringa del nodo corrente da cui vengono rimossi i caratteri NL o CR.
Tieni presente che nessun altro carattere viene eliminato o modificato, quindi questa è una soluzione più precisa e potrebbe essere preferibile in alcuni casi rispetto a normalize-space()