Axel: XML + perl

Wer kann mir da weiterhelfen:

Ich habe XML-Seiten, denen ein XSLT-Stylesheet und im Anschluss daran ein CSS-Sheet zugeordnet ist. Offline kein Problem, online (bei 1&1) ging das im IE prima, im Mozilla nicht. Das Problem: Der MIMEType für XSLT wird bei 1&1 wohl falsch zurückgegeben. Ich habe meine XSLT-Stylesheet umbenannt in dingens.xsl.xml, seitdem geht das auch im Mozilla.

Nun möchte ich aber die XML-Dateien mit perl dynamisch erzeugen: Jetzt geht's nur noch im Mozilla, aber der IE verweigert sich. Offensichtlich orientiert sich Mozilla an den tatsächlichen MIMETypes, aber IE wohl eher an den Dateinamen...

Natürlich ist der angezeigte Sourcecode in beiden Browsern identisch - der Unterschied ist nur: Mozilla interpretiert ihn und ruft das XSLT-Stylesheet auf, IE denkt sich wohl '.pl - da kann das 'text/xml' doch nur falsch sein, und zeigt nur den Text-Dump an.

Fällt da jemand was ein?

Gruß, Axel

  1. Hallo Axel,

    Fällt da jemand was ein?

    <File "perlscript.xsl">
      AddHandler cgi-script .xsl
    </File>

    Grüße,
     CK

    --
    Der Geist ist alles. Du wirst, was du denkst.
    http://wwwtech.de/
    1. <File "perlscript.xsl">
        AddHandler cgi-script .xsl
      </File>

      Hi Christian,

      da bin ich jetzt etwas überfordert;-) Das sieht doch aus wie eine Config-Zeile für den Apache - aber den kann ich als 1&1-Kunde doch nicht umkonfigurieren...

      Ich will ja doch auch nicht ein XSL-Stylesheet als CGI ausführen. Vielleich habe ich mich nicht verständlich genug ausgedrückt:

      Mein Perl-Skript erzeugt sinngemäß folgenden Output:

      print "Content-Type: text/xml\n\n";
      print <<END
      <?xml version="1.0" encoding="ISO-8859-1"?>
      <?xml-stylesheet type="text/xsl" href="style.xsl.xml"?>
      ...
      END

      Mozilla beachtet den MIME type, den ich angebe: Korrekte Anzeige! IE ignoriert aber offensichtlich das "text/xml" und orientiert sich nur an der Dateiendung ".pl" der aufgerufenen Seite.

      Das ist das Selbe wie bei dem Fehler, den ich anfangs geschildert habe: Heisst mein Stysheet "style.xsl", dann weigert sich Mozilla, da der 1&1-Server XSL als "text/plain" zurückgibt. Ohne den perl-Teil, also beim direkten Aufruf einer XML-Datei, funktioniert das aber im IE (weil er eben auch da den MIMEtype ignoriert). Diesen Teil habe ich durch das Umbenennen von .xsl in .xml in den Griff gekriegt, nur bei der perl-Geshichte fällt mir nix mehr ein...

      Gruß, Axel

      1. use Mosche;

        <File "perlscript.xsl">
          AddHandler cgi-script .xsl
        </File>

        da bin ich jetzt etwas überfordert;-) Das sieht doch aus wie eine Config-Zeile für den Apache - aber den kann ich als 1&1-Kunde doch nicht umkonfigurieren...

        Hast du Zugriff auf ".htaccess"? Dort kannst du auch gewisse Konfigurationsoptionen vornehmen, unter anderem die von CK genannte.

        Ich will ja doch auch nicht ein XSL-Stylesheet als CGI ausführen. Vielleich habe ich mich nicht verständlich genug ausgedrückt:

        Du musst von dem Gedanken Abstand nehmen, daß die Endung einer Datei deren Inhalt bestimmt. CKs Ausdruck besagt, daß die Datei "perlscript.xsl" als CGI-Script behandelt (also ausgeführt) wird. Der Name ist dem Apache egal. Der Browser merkt keinen Unterschied, ob da jetzt wirklich dein *.xsl-File auf der Festplatte liegt oder ein Perl-Script, welches dieses on-the-fly erzeugt.

        use Tschoe qw(Matti);

        --
          Anyone who quotes me in their sig is an idiot. -- Rusty Russell.