<xsl:variable> den Wert "Zeilenumbruch" zuweisen
frage
- xsl
0 Thomas Meinike0 frage
0 MudGuard0 frage0 MudGuard0 frage
0 Thomas J.S.0 frage
Habe es mit <xsl:variable name="test">
</xsl:variable> versucht, aber offenbar ist es falsch, dagegen so etwas wie <xsl:variable name="test">ü</xsl:variable> funktioniert.
Hallo,
Habe es mit <xsl:variable name="test">
</xsl:variable> versucht, aber offenbar ist es falsch, dagegen so etwas wie <xsl:variable name="test">ü</xsl:variable> funktioniert.
Probiere es mit 

\n = 
 // Unix
\r = 
 // Mac
\r\n = 
 // Windows
MfG, Thomas
hallo, danke für die schnelle Antwort, hat aber leider nicht geklappt.. :(
Hi,
Habe es mit <xsl:variable name="test">
</xsl:variable> versucht, aber offenbar ist es falsch, dagegen so etwas wie <xsl:variable name="test">ü</xsl:variable> funktioniert.
Wie sieht das Resultat der Transformation an der Stelle aus, an der die Variable eingesetzt wird?
Wie sieht die Verwendung der Variable aus?
Was für eine Sprache wird erzeugt? HTML? Dann ist vielleicht <br/> geeigneter als 
 (ein Zeilenumbruch im Quelltext wird ja in den meisten Fällen bei HTML mit benachbarten Whitespace-Zeichen zu einem Leerzeichen reduziert).
cu,
Andreas
Hallo, vielen Dank für die Antwort,
als Ausgabe habe ich ein PDF-Dokument, muss innerhalb eines Elementes nach dem Zeilenumbruch suchen bzw. prüfen, ob das letzte Zeichen ein Zeilenumbruch ist. Mache es folgendermaßen:
<xsl:variable name="test">
</xsl:variable>
<xsl:if test="substring($element, string-length($element) - string-length($test) + 1) = $test">
mach...
</xsl:if>
Wie gesagt, bei anderen Zeichen funktioniert es wunderbar.. Mit dem 
 wird zwar keine Fehlermeldung ausgegeben, dafür aber jedesmal "mach" ausgeführt, egal, wie das letzte Zeichen aussieht..
Hi,
Habe es mit <xsl:variable name="test">
</xsl:variable> versucht, aber offenbar ist es falsch, dagegen so etwas wie <xsl:variable name="test">ü</xsl:variable> funktioniert.
Wie sieht das Resultat der Transformation an der Stelle aus, an der die Variable eingesetzt wird?
Wie sieht die Verwendung der Variable aus?
Was für eine Sprache wird erzeugt? HTML? Dann ist vielleicht <br/> geeigneter als 
 (ein Zeilenumbruch im Quelltext wird ja in den meisten Fällen bei HTML mit benachbarten Whitespace-Zeichen zu einem Leerzeichen reduziert).cu,
Andreas
Hi,
<xsl:variable name="test">
</xsl:variable>
<xsl:if test="substring($element, string-length($element) - string-length($test) + 1) = $test">
Also wenn ich das richtig sehe:
string-length($test) ist 1 (es steht genau das Zeilenumbruchzeichen drin)
Also wird
substring($element, string-length($element)) ausgewertet.
Mit anderen Worten: das letzte Zeichen (wozu das ' - string-length($test) + 1'?).
Was steht denn genau in dem betroffenen Element?
Wie sind die white-space Einstellungen für das betroffene Element?
Steht das schließende tag des Elements in einer neuen Zeile?
cu,
Andreas
Hallo Andreas,
vielen Dank für die Antwort! Also ich habe einfach das Beispiel aus der Seite http://xsl-rp.de/index.php?top=1&sub=2&cmd=61&action=cmd übernommen, aber das, was Du geschrieben hast, stimmt natürlich, die zweite Hälfte der Abfrage war wohl nicht nötig.. Vielen Dank für die schnelle Hilfe! Habe übrigens rausgefunden, dass man auch <xsl:variable name="test">
</xsl:variable> geht, also mit einem anderen Unicode.
Hallo,
als Ausgabe habe ich ein PDF-Dokument, muss innerhalb eines Elementes nach dem Zeilenumbruch suchen bzw. prüfen, ob das letzte Zeichen ein Zeilenumbruch ist. Mache es folgendermaßen:
<xsl:if test="substring($element, string-length($element) - string-length($test) + 1) = $test">
mach...
</xsl:if>
Was sollte dieser Ausdruck nochmal prüfen?
string-length($test) + 1 = 2
if: substring($element, string-length($element)) = $test
Damit bekommt man das letzte Zeichen im Element. Das Funktioniert bei mir mit:
<xsl:if test="substring($element, string-length($element)) = '
'">
... tue was ...
</xsl:if>
Wie gesagt, bei anderen Zeichen funktioniert es wunderbar.. Mit dem 
 wird zwar keine Fehlermeldung ausgegeben, dafür aber jedesmal "mach" ausgeführt, egal, wie das letzte Zeichen aussieht..
Das kann aber auch daran liegen, dass deine Elemente 'ordentlich' Formatiert sind:
ihnalt
</element>
d.h. es gibt _immer_ ein Zeilenumbruch am Ende.
Grüße
Thomas
Hallo Thomas,
vielen Dank für die Antwort, also ich habe mich da wohl etwas vertan.. :( oder besser gesagt, mich zu sehr auf das Beispiel auf der Seite http://xsl-rp.de/index.php?top=1&sub=2&cmd=61&action=cmd verlassen bzw. da was falsch verstanden.. auf jeden Fall funktioniert Dein Vorschlag wunderbar, vielen Dank!! Das war ja das Problem, dass die Elemente nicht immer so "ordentlich" formatiert sind, leider, leider.. :) Danke schön!
Hallo,
vielen Dank für die Antwort, also ich habe mich da wohl etwas vertan.. :( oder besser gesagt, mich zu sehr auf das Beispiel auf der Seite http://xsl-rp.de/index.php?top=1&sub=2&cmd=61&action=cmd verlassen bzw. da was falsch verstanden.
Das ist das "Musterbeispiel" aus Michael Kays Buch ;-)
substring($A, string-length($A) - string-length($B) + 1) = $B
welches eigentlich auch funktioniert.
auf jeden Fall funktioniert Dein Vorschlag wunderbar, vielen Dank!!
Gerne ;-)
Grüße
Thomas