Entfernen Sie den Zeilenvorschub (LF) mithilfe von XSLT vom XML-Knoten
Frage
Ich habe Folgendes in einem XML-Knoten:
<TR_Comment>XXX YYY ZZZ
</TR_Comment>
(wie Sie sehen, gibt es einen Zeilenvorschub)
Mein XSLT ist wirklich einfach:
<xsl:value-of select="a:Common/a:TR_Comment"/>
Wie kann ich den Zeilenvorschub mit XSLT entfernen?
Lösung
Macht normalize-space(a:Common/a:TR_Comment)
, was Sie wollen?
Wenn Sie wirklich daran interessiert sind, innere Leerzeichen zu erhalten, kann dies etwas unelegant werden.Eine Möglichkeit besteht darin, eine rekursive Vorlage zu erstellen, die string-length
und substring
verwendet, um Zeichen nacheinander vom Ende zu entfernen, bis kein nachfolgendes Leerzeichen mehr vorhanden ist.
Andere Tipps
Verwenden Sie :
translate(., ' ', '')
Wenn dieser Ausdruck ausgewertet wird, ist das Ergebnis der Zeichenfolgenwert des aktuellen Knotens, von dem alle NL- oder CR-Zeichen entfernt werden.
Beachten Sie , dass keine anderen Zeichen gelöscht oder geändert werden. Dies ist daher eine präzisere Lösung und in einigen Fällen dem normalize-space()
vorzuziehen