Valentin Wirth: Problem nach MSXSL Transformierung

Hallo Selfler!

Ich habe eine mit MSXSL erzeugte HTML Datei und CSS Datei die beide fehlerfrei sind. Im IE lasst sich die Datei problemlos anzeigen - in Firefox wird sie, egal was ich mache, ohne Stylesheet geladen. Kopiere ich den gasamten Quelltext der HTML in eine leere neue Datei funktioniert alles einwandfrei.

Was gibt es noch an einer Datei außer den Namen+Endung und deren Inhalt der z.B. mit TextPad angezeigt wird? Gibt es evtl besondere Einstellungen für MSXSL?

Hier nochmal was ich bis jetzt gemacht habe. Ich habe eine XML Datei aus der ich via XSLT mehrere HTML Dateien erstelle. Dazu benutze ich MSXSL und eine kleine Bat Datei. Das funktioniert alles auch ganz wunderbar.

Nun habe ich ein Haufen HTML Dateien die ich mit CSS nach belieben gestalte. Zuerst ist mir aufgefallen das die HTML Dateien in Firefox nicht mit Stylesheet angezeigt werden. Da dachte ich mir noch es läge evtl an einer falschen Doctype oder einem Fehler in der CSS Datei.

Nach einigem probieren stellte sich raus das sowohl der HTML Quelltext als auch die CSS Datei in bester Ordnung sind. Trotzdem zeigte nur der IE CSS Gestaltung an. Dann habe ich den Inhalt der HTML Datei im ganzen in eine lehre Textdatei kopiert und siehe da - es ging.

Hatte schonmal jemand von euch ein ähnliches Problem?

Ich freue mich auf eure Anregungen und wünsche euch noch viel Spaß beim lernen,

Valentin

  1. Hallo,

    Ich habe eine mit MSXSL erzeugte HTML Datei und CSS Datei die beide fehlerfrei sind. Im IE lasst sich die Datei problemlos anzeigen - in Firefox wird sie, egal was ich mache, ohne Stylesheet geladen. Kopiere ich den gasamten Quelltext der HTML in eine leere neue Datei funktioniert alles einwandfrei.

    Was gibt es noch an einer Datei außer den Namen+Endung und deren Inhalt der z.B. mit TextPad angezeigt wird?

    Es gibt noch den mit dem Content-Type-Header ausgelieferten Mime-Type. Der muss für HTML  Content-Type: text/html und für CSS Content-Type: text/css sein.

    Nach einigem probieren stellte sich raus das sowohl der HTML Quelltext als auch die CSS Datei in bester Ordnung sind. Trotzdem zeigte nur der IE CSS Gestaltung an. Dann habe ich den Inhalt der HTML Datei im ganzen in eine lehre Textdatei kopiert und siehe da - es ging.

    Hatte schonmal jemand von euch ein ähnliches Problem?

    In welcher Umgebung läuft das? Werden die Ressourcen von einem HTTP-Server ausgeliefert oder rufst Du die Dateien einfach vom Dateisystem im Browser auf? Wenn letzteres und das System ist Windows, welche Dateiendungen haben die Dateien? Wenn ersteres, welchen Content-Type-Header sendet der Server für die Ressourcen?

    viele Grüße

    Axel

    1. Hallo Axel danke für die Antwort.

      Es gibt noch den mit dem Content-Type-Header ausgelieferten Mime-Type. Der muss für HTML  Content-Type: text/html und für CSS Content-Type: text/css sein.

      Es werden die jeweils passenden Content-Type-Header mitgegeben. Z.Z. glaube ich aber nicht das es mit dem eigentlichen Quelltext zu tun hat als vielmehr mit der Datei selbst. Wenn ich den exakt gleich Quelltext der HTML Datei in eine neue HTML-Datei schreibe funktioniert alles wunderbar.

      In welcher Umgebung läuft das? Werden die Ressourcen von einem HTTP-Server ausgeliefert oder rufst Du die Dateien einfach vom Dateisystem im Browser auf? Wenn letzteres und das System ist Windows, welche Dateiendungen haben die Dateien? Wenn ersteres, welchen Content-Type-Header sendet der Server für die Ressourcen?

      Ich habe das selbe Problem wenn ich die HTML Dateien über mein Windows Rechner betrachte oder wenn ich sie über den Webserver aufrufe. Die HTML Dateien haben die Endung .html - die Stylesheets .css.

      Vorhin ist mir noch aufgefallen wenn ich die HTML Dateien hochlade gibt mir mein FTP Programm eine Fehlermeldung. Beim Versucht die HTML im Textmodus zu senden meint es die Dateien wären wahrscheinlich Binär Dateien. Wenn ich sie trotzdem sende kann ich sie trotzdem mit dem IE  normal betrachten und in Firefox halt ohne CSS.

      Ich werde gleich nochmal überprüfen welche Doctype und Content-Type-Header meine XSL Datei an MSXSL gibt. Gut möglich das dort das Problem liegt.

      1. Hallo,

        Vorhin ist mir noch aufgefallen wenn ich die HTML Dateien hochlade gibt mir mein FTP Programm eine Fehlermeldung.

        MSXML macht eine Transformation mit/nach UFT-16 -wenn nicht anderes angegeben ist- das könnte die Probleme verursachen. Lade mal die Dateien so hoch wie sie sind (oder zumindest eine Datei) und verlinke sie hier.

        Grüße
        Thomas

        1. MSXML macht eine Transformation mit/nach UFT-16 -wenn nicht anderes angegeben ist- das könnte die Probleme verursachen. Lade mal die Dateien so hoch wie sie sind (oder zumindest eine Datei) und verlinke sie hier.

          Hier einmal ein Link zur durch Transformation erzeugten Datei und einer per Hand erstellten mit dem gleichen Quelltext (produktanalyse2). Die Seiten noch unfertig und nicht valide - das Problem bleibt aber das Gleiche, auch wenn ich den Quelltext auf ein Minimum (z.B. nur eine H1 Überschrift) reduziere.

          http://www.goyo.de/gfl/lebensmittelanalytik/produktanalyse.html
          http://www.goyo.de/gfl/lebensmittelanalytik/produktanalyse2.html

          Grüße
          Valentin

          1. http://www.goyo.de/gfl/lebensmittelanalytik/produktanalyse.html
            http://www.goyo.de/gfl/lebensmittelanalytik/produktanalyse2.html

            Gerade fällt mir noch auf, dass die erste Datei, die durch MSXSL erstellt wurde (produktanalyse.html) 10,7 kb gross ist. Die 2. mit dem genau gleichen/selben Quelltext, den ich in eine leere Textdatei kopiert habe ist 5,35 kb gross. Komisch...

            Valentin

            1. Hallo,

              Gerade fällt mir noch auf, dass die erste Datei, die durch MSXSL erstellt wurde (produktanalyse.html) 10,7 kb gross ist. Die 2. mit dem genau gleichen/selben Quelltext, den ich in eine leere Textdatei kopiert habe ist 5,35 kb gross. Komisch...

              Die groeßere Datei enhaelt Unicode (Kodierung UTF-16) und die andere ist offenbar als ISO-8859-1 kodiert. Setze im XSL-Stylesheet das Attribut encoding="ISO-8859-1" fuer das Element xsl:output.

              Alternativ zu MSXML (Kommandozeilenversion?) bietet sich auch ein XSLT-Prozessor wie XMLStarlet an (sehr feines Tool, quasi das Schweizer Messer fuer XML).

              Aufruf fuer Transformationen:
              xml tr bla.xsl blub.xml > ausgabe.xyz

              MfG, Thomas

              1. Die groeßere Datei enhaelt Unicode (Kodierung UTF-16) und die andere ist offenbar als ISO-8859-1 kodiert. Setze im XSL-Stylesheet das Attribut encoding="ISO-8859-1" fuer das Element xsl:output.

                Viele Dank für deine Antwort. Jetzt klappt es richtig :-) Ich habe auch gerade durch weiteres forschen im Archiv noch ein weiteren interessanten Artikel. In dem Artikel geht es ua. auch um das Encoding bei XSLT.
                http://forum.de.selfhtml.org/archiv/2005/9/t114844/#m732902

                Also nochmal vielen Dank,

                Valentin