Gunnar Bittersmann: bedingtes XSLT möglich?

Hi,
Wie bekommt man XML-Dateien (RSS, FOAF, ...) in einer menschenlesbaren Form angezeigt?

Mit CSS ist das ja kein Problem. Das W3C macht es in http://w3.org/2000/08/w3c-synd/home.rss so. Browser interpretieren CSS, RSS-Reader ignorieren es.

Aber geht das auch mit XSLT? Über content negotiation? Wenn ein Agent text/html (application/xhtml+xml) anfordert, soll transformiert werden, ansonsten nicht?

Oder muss in solchen Fällen die Transformation statt in XSLT doch mit PHP o.ä. erfolgen?

Gruß,
Gunnar

--
„Solang wir noch tanzen können
und richtig echte Tränen flennen,
ist noch alles offen,
ist noch alles drin.“
(Gundermann)
  1. Hi,

    Wie bekommt man XML-Dateien (RSS, FOAF, ...) in einer menschenlesbaren Form angezeigt?

    XML-Dateien sind bereits menschenlesbar. Ein echtes Leistungsmerkmal, wie ich finde. Nun zum Rest Deines Beitrags...

    Aber geht das auch mit XSLT?

    XML wird von XSLT bspw. in XHTML transformiert, klar.

    Über content negotiation?

    Hey, DOS Attacken gegen Content?

    Wenn ein Agent text/html (application/xhtml+xml) anfordert, soll transformiert werden, ansonsten nicht?

    Auch manche Browser koennen die XSLTransformation. Da koennte man tatsaechlich zwischen client- und serverseitiger Transformation unterscheiden. Clientseitige Transformation bedingt manchmal deutlich weniger traffic.

    Oder muss in solchen Fällen die Transformation statt in XSLT doch mit PHP o.ä. erfolgen?

    Noee.

    Gruss,
    Ludger

  2. Hallo,

    Aber geht das auch mit XSLT? Über content negotiation? Wenn ein Agent text/html (application/xhtml+xml) anfordert, soll transformiert werden, ansonsten nicht?

    Auch wenn der Client XML/XHTML-faehig ist, sagt das noch nichts ueber seine XSLT-Faehigkeit aus.

    Oder muss in solchen Fällen die Transformation statt in XSLT doch mit PHP o.ä. erfolgen?

    Nicht unbedingt "statt", sondern ggf. auch mit XSLT und PHP.

    Clientseitige XSL-Transformationen halte ich eigentlich nur sinnvoll fuer Intranets mit einheitlicher Ausstattung oder (vor allem) fuer Test- und Uebungszwecke). Produktive "ont-the-fly"-Verarbeitung von XML in andere Zielformate ist nach wie vor etwas fuer die Serverseite.

    MfG, Thomas

    1. Hi Thomas,

      Auch wenn der Client XML/XHTML-faehig ist, sagt das noch nichts ueber seine XSLT-Faehigkeit aus.

      Also XSLT für sich allein läuft immer auf dem Client?
      Haste vielleicht einen Link „serverseitiges XSLT für Dummies“?
      Danke,
      Gunnar

      --
      „Solang wir noch tanzen können
      und richtig echte Tränen flennen,
      ist noch alles offen,
      ist noch alles drin.“
      (Gundermann)
      1. Hallo,

        Also XSLT für sich allein läuft immer auf dem Client?

        XSLT laeuft nicht fuer sich allein -- es bedarf der Anwendung eines XSLT-Prozessors und der _kann_ auch im Client verfuegbar sein, aber darauf ist eben kein Verlass.

        Natuerlich kann man auch lokal Dokumente umwandeln und das Ergebnis dann hochladen.

        Haste vielleicht einen Link „serverseitiges XSLT für Dummies“?

        So direkt nicht, denn formal passiert dort auch "nicht mehr" als das Prozessieren von XML mit XSL zu einem Ausgabeformat. Skriptsprachen delegieren das mit wenigen Codezeilen an entsprechende Module/Bibliotheken. Das Ergebnis (HTML, SVG usw.) wird dann an den Client ausgeliefert.

        MfG, Thomas

      2. Hi,

        Haste vielleicht einen Link „serverseitiges XSLT für Dummies“?

        http://de.selfhtml.org/xml/darstellung/index.htm fuer den Einstieg?

        Gruss,
        ludger

        1. Ludger,
          Wenn du öfter hier im Forum wärst, wüsstest du, dass ich mich in SELFHTML ganz gut auskenne. >;->
          Gunnar

          --
          „Solang wir noch tanzen können
          und richtig echte Tränen flennen,
          ist noch alles offen,
          ist noch alles drin.“
          (Gundermann)
          1. Hi,

            Wenn du öfter hier im Forum wärst, wüsstest du, dass ich mich in SELFHTML ganz gut auskenne. >;->

            warum stellst Du dann Fragen wie:

            Also XSLT für sich allein läuft immer auf dem Client?

            Haste vielleicht einen Link „serverseitiges XSLT für Dummies“?

            Noch ein Link wegen der Starrkoepfigkeit: http://de.selfhtml.org/xml/darstellung/xslgrundlagen.htm

            Tss, tss...

            Gruss,
            Ludger

            1. Ludger,

              Noch ein Link wegen der Starrkoepfigkeit: http://de.selfhtml.org/xml/darstellung/xslgrundlagen.htm

              Ja, hab ich auch schon mal gelesen. Aber so richtig schlau, wie XSLT und PHP zusammenwirken, werd ich daraus auch nicht.
              Gunnar

              --
              „Solang wir noch tanzen können
              und richtig echte Tränen flennen,
              ist noch alles offen,
              ist noch alles drin.“
              (Gundermann)
              1. Hallo,

                Ja, hab ich auch schon mal gelesen. Aber so richtig schlau, wie XSLT und PHP zusammenwirken, werd ich daraus auch nicht.

                Zuisammenwirken tun sie eigentlich gar nicht. Wie Thomas Sagte, delegiert PHP diese Aufgaben en einem XSLT-Prozessor, entweder an Sablotorn http://www.php.net/manual/en/ref.xslt.php oder libxslt http://www.php.net/manual/en/ref.xsl.php

                Grüße
                Thomas

                1. Danke, Thomas.

                  Wann lohnt es denn eigentlich, ein XSLT-Stylesheet zu schreiben, und nicht gleich die Transformation in PHP zu implementieren?

                  Gunnar

                  --
                  „Solang wir noch tanzen können
                  und richtig echte Tränen flennen,
                  ist noch alles offen,
                  ist noch alles drin.“
                  (Gundermann)
                  1. Hi,

                    Wann lohnt es denn eigentlich, ein XSLT-Stylesheet zu schreiben, und nicht gleich die Transformation in PHP zu implementieren?

                    "immer", faellt mir da so auf die Schnelle ein, hauptsaechlich auch weil Du mit PHP auch eine Routine mit den XML-Daten und mit dem XSLT-Script parametriesieren muesstest.

                    BWT - ich wuerde mal den Download (die ersten drei Monate fuer ""Evaluationszwecke") des aktuellen XMLSpy empfehlen und da mal den Stylsheet Designer hochkommen lassen und schauen was so passiert. (So zu sagen das M$ Frontpage fuer XML)

                    Gruss,
                    Ludger

                  2. Hallo,

                    Wann lohnt es denn eigentlich, ein XSLT-Stylesheet zu schreiben, und nicht gleich die Transformation in PHP zu implementieren?

                    Immer. ;-)

                    Wenn du die Transfomation direkt in PHP imlementieren willst, muss du eigene PHP/HTML-Templates schreiben in denen du mit DOM und PHP die entsprechende Knoten in deinem XML ansteuerst und wenn du zusätzliche Funktionalitäten brauchst muss du dafür auch eigene Routinen in PHP schreiben, auch wenn du dabei vielleicht auf die PHP-XPath-Funktionen zurückgreifen kannst.
                    Das ist viel zu fähleranfällig und umständlich.
                    Es ist wirklich einfacher die Transformation einem Prozessor zu überlassen, als das man selbst einen Transformer schreibt.
                    PHP hat dabei nur die Rolle die ensprechende Dateien (XML/XSL) aufzurufen, die Transformation auszulösen und das Ergebnis an den Server/Browser zu senden.

                    Grüße
                    Thomas

                    1. Danke Jungs,
                      Gunnar

                      --
                      „Solang wir noch tanzen können
                      und richtig echte Tränen flennen,
                      ist noch alles offen,
                      ist noch alles drin.“
                      (Gundermann)
                    2. Hi,

                      [...] fähleranfällig [..]

                      hey, Schreibfeheler des Monats fuer mich. Da sieht man mal Deine undeutsche Herkunft ganz klar. Tschechen wuerden so einen Mist normalerweise auch machen.   ;-)

                      Lustigerweise werden 'e' und 'ä' in der Deutschen Sprache gleich ausgesprochen, wenn das 'e' "kurz" ausgesprochen wird. Nach Studium einiger Sprachen amuesiert mich die Deutsche rechtschreibung immer wieder. Andere sind uns da, aehh, weit voraus.

                      Gruss,
                      Ludger

                      1. Hallo,

                        [...] fähleranfällig [..]

                        hey, Schreibfeheler des Monats fuer mich.

                        Ich hatte schon bessere. ;-)

                        Da sieht man mal Deine undeutsche Herkunft ganz klar.

                        Das ist eine gewagte Aussage in diesem Forum. ;-)

                        Grüße
                        Thomas

              2. Hallo,

                Aber so richtig schlau, wie XSLT und PHP zusammenwirken, werd ich daraus auch nicht.

                Bei der genannten Umwandlung des RSS-Feeds dieses Forums ist entsprechender PHP-Code dabei (Download-Link).

                MfG, Thomas

    2. Hi,
      Ich bin noch nicht weiter. Bei
        $xsltref = xslt_create();
      bekomme ich den Fehler
        Call to undefined function: xslt_create()

      Auf dem Server läuft PHP 4.2.1; xslt_create() sollte laut http://www.php.net/manual/de/function.xslt-create.php schon ab 4.0.3 verfügbar sein...

      Gruß,
      Gunnar

      --
      Es más difícil ser rey sin corona que una persona más normal (Shakira, Octavo día)
      1. $xsltref = xslt_create();
          Call to undefined function: xslt_create()

        Auf dem Server läuft PHP 4.2.1; xslt_create() sollte laut http://www.php.net/manual/de/function.xslt-create.php schon ab 4.0.3 verfügbar sein...

        Es muss aber auch einkompiliert/aktiviert sein, und es muss die sablotron-Bibliothek vorhanden sein.

        Unter welchem System willst du es denn laufen lassen?

        1. dedlfix,

          Es muss aber auch einkompiliert/aktiviert sein, und es muss die sablotron-Bibliothek vorhanden sein.

          Hab ich wohl keine Chance, das zu tun?

          Unter welchem System willst du es denn laufen lassen?

          Die Domain wird gehostet von Keyweb AG. (Paket Profi XL)

          Gunnar

          --
          Es más difícil ser rey sin corona que una persona más normal (Shakira, Octavo día)
          1. Hallo,

            Es muss aber auch einkompiliert/aktiviert sein, und es muss die sablotron-Bibliothek vorhanden sein.

            Hab ich wohl keine Chance, das zu tun?

            Wenn ein <? phpinfo(); ?> Sablotron nicht auflistet, wohl kaum, es sei denn du kannst deinen Provider überzeugen.

            Unter welchem System willst du es denn laufen lassen?

            Die Domain wird gehostet von Keyweb AG. (Paket Profi XL)

            Leider sagt das wirklich nichts aus, denn ein "hosted auf Keymachine Markenwebservern" ist ohne nähere Angaben nichts von Wert.
            Wenn man die Dedicated Maschinen so anschaut, dürten zwar auch die Shared unter Linux laufen, aber die sind mal grad so im mittelmäßigem PC-Bereich.

            Grüße
            Thomas