XML und Leerzeichen ( )
André Laugks
- xml
0 Maik Görgens0 Thomas J.S.0 André Laugks0 Marko0 Thomas J.S.
Hallo!
Ich wollte eben mal ein Leerzeich ( ) in einer XSLT-Datei einfügen und bekam eine Fehlermeldung. Nach kurzer Recherche war mir auch klar wieso. Man kann also dafür den Unicode   verwenden. Nun schaue ich nach der Transformation in den Quellentext des transformieren Dokumentes und   ist nicht da. Ich brauchte das für eine Tabellenzelle (<td> </td>). Im Quellentext sieht das also so aus <td> </td> (Leerzeichen/Leerstelle zwischen dem td's ist zu beachten). Die Tabellenzelle zeigt mir aber im Browser an, das in der Zelle Inhalt ist, also nicht leer. Ich mache also mal die Probe mit (|        |) und sie da, die beiden vertikalen Striche stehen weit auseinander (| |).
Ist das Leerzeichen   nur "virtuell" da?
MfG, André Laugks
Hallo!
Hm, ungetestet würd ich sagen, probier mal folgendes:
 
Vielleicht hilft das.
Gruß Maik
Hallo Andre,
Ist das Leerzeichen   nur "virtuell" da?
Nein. Eigentlich müsste im Quelltext er erzeugten HTML-Seite
<td>| |</td> stehen, denn sonst wären ja die striche nicht so weit auseinander, da in HTML ja nicht explizit definierte Leerzeichen (eben z.B. ) zu einem Leerzeichen kollabiert werden.
Vielleicht leigt es an deinem Editor?
Grüße
Thomas
Hallo!
Nein. Eigentlich müsste im Quelltext er erzeugten HTML-Seite
<td>| |</td> stehen, denn sonst wären ja die striche nicht so weit auseinander, da in HTML ja nicht explizit definierte Leerzeichen (eben z.B. ) zu einem Leerzeichen kollabiert werden.
Ich es eben noch einmal mit (|        |) versucht. Im Saxon tut sich was. Den quelltext habe ich mir jeweils im NN7 und IE 5.5 angeschaut.
Saxon
Quelltext -> | |
Browser -> | |
Sablotron
Quelltext -> | |
Browser -> | |
MSXML (IE 5.5)
Quelltext -> | |
Browser -> | |
Aber ich habe mal eben die Striche ohne   auseinander geschoben. Die Striche klappen wie erwartet zusammen. Also muß ja irgendwie ein Leerzeichen da sein.
MfG, André Laugks
Hallo Andre,
könnte es sein, dass in dem einen Fall der Ascii Code für ein Leerzeichen gespeichert ist, und im anderen Fall der Unicode ? Es muss irgendwie entweder am gespeicherten Zeichen liege, (könntest Du in einem Hexeditor nachschauen), oder vielleicht an der Art und Weise wie der Browser die Datei interpretiert, vielleicht nimmt er mal Unicode das andere Mal Ascii als Grundlage.
Gruss
Marko
Hallo Marko,
hallo André!
könnte es sein, dass in dem einen Fall der Ascii Code für ein Leerzeichen gespeichert ist, und im anderen Fall der Unicode ?
Das ist definitiv so - die XSL-Engine transformiert schon richtig und setzt statt   den entsprechenden Unicode ein - in der Windows Zeichentabelle steht als Beschreibung zu diesem Zeichen: "Dauerleerzeichen".
Den selben (gewünschten) Effekt hättest Du, wenn Du in der HTML-Datei statt ein ALT-0160 (zumindest in Windows) eingeben würdest. Also, soweit, so richtig.
mfg
norbert =:-)
Hallo Nordert,
könnte es sein, dass in dem einen Fall der Ascii Code für ein Leerzeichen gespeichert ist, und im anderen Fall der Unicode ?
Das ist definitiv so - die XSL-Engine transformiert schon richtig und setzt statt   den entsprechenden Unicode ein - »»
Wie meinst du das bitte?
Grüße
Thomas
Hallo Thomas!
Also - ich bezog mich dabei auf http://selfhtml.teamone.de/xml/regeln/xmldeklaration.htm#zusatzangaben
"Wenn Sie keine Angaben zum Zeichensatz machen, wird per Voreinstellung der Unicode-gerechte Zeichensatz ISO/IEC 10646 angenommen"
Korrekt wäre auch, dass der Parser für dieses "named entity" den Unicode liefert, welches der "XSL-Transformator" auch richtig in das Resultat einbindet.
Da ich jedoch gerade gerügt wurde, derartig "schwammige" Statements nicht mehr zu posten, werde ich mich künftig zurückhalten.
mfg
norbert =:-)
PS: Absicht?
Hallo Nordert,
Hallo Norber,
Also - ich bezog mich dabei auf http://selfhtml.teamone.de/xml/regeln/xmldeklaration.htm#zusatzangaben
"Wenn Sie keine Angaben zum Zeichensatz machen, wird per Voreinstellung der Unicode-gerechte Zeichensatz ISO/IEC 10646 angenommen"
Das ist ja auch richtig. Aber das spielt keine Rolle, denn ob jetzt der Parser   oder   schreibt ist ja egal, was er nicht macht (machen soll) aus einem   ein   zu machen.
Das erste ist ein geschützes Leerzeichen und das zweite ein normaler "Space".
Korrekt wäre auch, dass der Parser für dieses "named entity" den Unicode liefert, welches der "XSL-Transformator" auch richtig in das Resultat einbindet.
Sehe ich anders, denn warum soll ein XML-Parser für eine dezimale oder eine unicode Notierung eine HTML-Entity zurückgeben?
Das wäre dann die Sache der XSL-Parser, wenn im xsl:output method="html" notiert wurde.
Da ich jedoch gerade gerügt wurde, derartig "schwammige" Statements nicht mehr zu posten,
Von wem denn?
PS: Absicht?
Hallo Nordert,
Eh... sorry, nein. "Dich" hat meine "Aufmerksamkeit" noch gut erwischt, unlängst haben ich Andreas zu Achim umgetauft ;-)
Hallo Thomas!
Hallo Norber,
Jetzt aber ...
... was er nicht macht (machen soll) aus einem   ein   zu machen.
Richtig. Hab ich auch nicht behauptet - offenbar erkennt André den Unterschied zwischen   (Leerzeichen) und   (geschütztes Leerzeichen) im Editor nicht, da beide als Blank dargestellt werden.
Von wem denn?
Verrat ich nicht ;-)
mfg
norbert =:-)
Hallo,
könnte es sein, dass in dem einen Fall der Ascii Code für ein Leerzeichen gespeichert ist, und im anderen Fall der Unicode ?
Wenn du meinst dass der XSL-Prozessor bei einem   in der XSL-Datei statt ein   in die HTML-Seite schreibt, dann wäre das ein Fehler im Prozessor.
Grüße
Thomas
Hallo Andre,
Im Saxon tut sich was. Den quelltext habe ich mir jeweils im NN7 und IE 5.5 angeschaut.
Saxon
Quelltext -> | |
Browser -> | |
Wie erwartet.
Sablotron
Quelltext -> | |
Browser -> | |
Sablotron speichert ja die Datei nicht, sondern transformiert on the fly, das könnte anderes sein als bei einer statischen HTML-Datei.
Versuche mal mit einem <xsl:output method="html" />
MSXML (IE 5.5)
Quelltext -> | |
Browser -> | |
Wo kannst du da HTML sehen? Beim Quelltextansehen zeigt der IE die XML-Datei.
Grüße
Thomas
Hallo!
Wo kannst du da HTML sehen? Beim Quelltextansehen zeigt der IE die XML-Datei.
Da verweise ich mal auf Dein Buch wie das geht! ;-)
MfG, André Laugks