Remova a alimentação de linha (LF) do nó XML usando XSLT
Pergunta
Tenho o seguinte em um nó XML:
<TR_Comment>XXX YYY ZZZ
</TR_Comment>
(como você pode ver, há um feed de linha)
Meu XSLT é muito simples:
<xsl:value-of select="a:Common/a:TR_Comment"/>
Como posso remover o avanço de linha usando XSLT?
Solução
O normalize-space(a:Common/a:TR_Comment)
faz o que você deseja?
Se você realmente deseja preservar os espaços em branco internos, isso pode ficar um pouco deselegante.Uma maneira é fazer um modelo recursivo que usa string-length
e substring
para continuar removendo caracteres do final, um de cada vez, até que não haja nenhum espaço em branco à direita.
Outras dicas
Use :
translate(., ' ', '')
quando esta expressão é avaliada, o resultado é o valor da string do nó atual do qual quaisquer caracteres NL ou CR são removidos.
Observe que nenhum outro caractere é excluído ou modificado, portanto, esta é uma solução mais precisa e pode ser preferível em alguns casos a normalize-space()