Giovanni: CSS oder XSLT

CSS oder XSLT

Hallo, ich möchte morgen damit beginnen eine neue Homepage zu programmieren. Ich werde sie wie immer mit PHP machen und statt HTML werde ich XHTML verwenden. Aber XHTML stellt (zumindest) der IE schematisch dar und nicht wie normales HTML. Jedoch kann man XHTML mit CSS oder XSLT formatieren.

Aber was soll ich  benutzen, CSS oder XSLT? Wo liegt direkt der Unterschied. XSLT ist eher als Formatierung für XML Elemente gedacht. XHTML besteht ja aus XML Elementen. Ist also XSLT besser geeignet eine XHTML Seite zu formatieren?

gruß giovanni

  1. Hi,

    CSS oder XSLT

    Hallo, ich möchte morgen damit beginnen eine neue Homepage zu programmieren. Ich werde sie wie immer mit PHP machen und statt HTML werde ich XHTML verwenden. Aber XHTML stellt (zumindest) der IE schematisch dar und nicht wie normales HTML. Jedoch kann man XHTML mit CSS oder XSLT formatieren.

    Das könnte am content-type liegen. Normales, als text/html ausgeliefertes XHTML stellt der IE genauso (bis auf Unterschiede durch Doctype-Switching...) dar wie HTML.

    Aber was soll ich  benutzen, CSS oder XSLT? Wo liegt direkt der Unterschied. XSLT ist eher als Formatierung für XML Elemente gedacht. XHTML besteht ja aus XML Elementen. Ist also XSLT besser geeignet eine XHTML Seite zu formatieren?

    XSLT ist keine Formatierung, sondern eine Transformation (daher auch das T in XSLT) - als Ausgabe kommt auch wieder nur (X)HTML  *) raus, was dann wiederum formatiert werden muß...

    *) oder XML oder Plaintext oder ...

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.mud-guard.de/
    1. Das könnte am content-type liegen. Normales, als text/html ausgeliefertes XHTML stellt der IE genauso (bis auf Unterschiede durch Doctype-Switching...) dar wie HTML.

      Content-type? Meinst du:

      <?xml version="1.0" encoding="UTF-8"?>

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

      so wie oben habs ichs, danach kommt der <html... tag. Wie muss ich denn den content-type haben, damit er mir den Inhalt darstellt?

      Gruß
      Giovanni

      1. Hi,

        Content-type? Meinst du:

        <?xml version="1.0" encoding="UTF-8"?>

        Das ist kein content-Type, das ist die XML-Declaration.

        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

        Das ist kein content-type, sondern der document type.

        Der content-type ist einer der http-header, die vor dem eigentlichen Dokument vom Server an den client geschickt werden.

        cu,
        Andreas

        --
        MudGuard? Siehe http://www.mud-guard.de/
        1. Okay, ich hab die XML Deklaration gelöscht:

          <?xml version="1.0" encoding="UTF-8"?>

          hab nur noch die doctype deklaration drinen und es geht!

          ABER! Die Dateendung ist jetzt xhtml. D. h. der Pharser muss auf die kleinigkeiten achten, ob jeder Tag abgeschlossen ist <br />
          aber das tut er nicht, er behandelt den code wie normales html. Das ist falsch.

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <title>Wenn HTML zu XHTML wird 2</title>
          </head>
          <body>
          <h1><a name="Start" id="Start">Wenn HTML zu XHTML wird HALLLLLLLLOOOOOOOO AABBB</a></h1>
          <p>Dann müssen alle Elemente mit Inhalt ein End-Tag haben.</p>
          <p>Leere Elemente<br />
          müssen einen Schrägstrich am Ende haben.</p>
          <hr noshade >                                            <<<-- Fehler
          <p>Leere Attribute erhalten ihren eigenen Namen als Wert zugewiesen.</p>
          <p><a href="#Start">Verweise zu Ankern</a> springen zum Zielelement
          aufgrund des id-Attributs, nicht das name-Attributs.</p>
          <script type="text/javascript" src="zeitstempel.js"></script>
          <!-- so ist das mit den Scripts am sichersten -->
          </body>
          </html>

          Den <<<---- Fehler oben ignoriert der Pharser. Darf er aber nach XHTML regeln nicht, wieso nicht?

          Gruß Giovanni

          1. Ein XML-Parser wird das in jedem Fall als Fehler melden.
            Die Browser sind meistens fehlertolerant und prüft die DTD nicht, wenn Du die XML-Deklaration wegläßt...

            1. Aber wie kann ich 100% wissen ob mein XHTML-Dokument auch XML-gerecht ist, also auch wirklich wohlgeformt ist. Soll ich einfach zum Test ne XML-Deklaration reinsetzen, oder?

              Obwohl der XML-Pharser nicht drüberläuft, ist es dennoch eine XHTML seine und keine HTML seite d. h. die XHTML seite wird mit nem andern Pharser interpretiert als ne reine HTML seite, oder?

              1. Hi,

                Aber wie kann ich 100% wissen ob mein XHTML-Dokument auch XML-gerecht ist, also auch wirklich wohlgeformt ist. Soll ich einfach zum Test ne XML-Deklaration reinsetzen, oder?

                Wie wäre es mit einem Validator?

                Obwohl der XML-Pharser nicht drüberläuft,

                Was ist ein Pharser? Meinst Du Parser? Oder Phaser (Spock, stell den Phaser auf Betäubung! Scotty, beam me up!)?

                cu,
                Andreas

                --
                MudGuard? Siehe http://www.mud-guard.de/
                1. Hallo

                  Wie wäre es mit einem Validator?

                  zum Beispiel dem hier: http://validator.w3.org/ :-)

                  Grüsse, eeye

                  --
                  [ ] <- Nail here for new Monitor.
          2. Okay, ich hab die XML Deklaration gelöscht:

            <?xml version="1.0" encoding="UTF-8"?>

            hab nur noch die doctype deklaration drinen und es geht!

            ABER! Die Dateendung ist jetzt xhtml.

            Dann mache es umgekehrt:
            XML-Deklaration hinein, Dateieindung auf html.

            Es gib im Archiv eine umfangereiche Disskusion zu diesem Thema (Jahr 2003) wo u.a. auch ich mich beteiligte (dies nur als 'hint' bei der Suche).

            Grüße
            Thomas

  2. Hallo Giovanni,

    entferne die erste Zeile, d.h. die XML-Deklaration. Wenn der Browser den Code als XHTML interpretieren soll, reicht der passende Doctype. XHTML ist fast nichts anderes als HTML im XML-Format (alle Tage abgeschlossen, Attribute in Anführungszeichen, keine Attribute ohne Wertangabe). Deshalb haben die meisten Browser auch keine Probleme damit. Alte Browser, die den XHTML-Doctype nicht kennen, interpretieren den folgenden XHTML-Code als HTML, was dann in der Regel auch funktioniert.

    XSLT selbst ist auch XML, mit standardisierten Tags. XSLT formatiert nicht XHTML, sondern wandelt eine XML-Quelle in ein Zielformat.

    Für die Formatierung von XHTML in heutigen Browsern solltest Du CSS verwenden.

    MfG
    Danny