XML/XSLT Templating
-
Moin,
zur Zeit verwende ich bei meiner Website php mit Smarty als Template-Engine.
Nun habe ich mal gehört, dass man ebenfalls den XML/XSLT Parser als Template-Engine benutzen kann. Kann ich mit mit diesem Parser einen normalen HTML 4 Output erzeugen(Da XHTML noch zu wenig unterstüzt wird)?
Wäre für kurze Infos und Links zu diesem Thema sehr dankbar!
Gruss Marc
-
Links oder Tutorials hab ich dazu nicht...
Kann dir aber ganz grob sagen wie es geht: Du generierst mit deinen Daten ein XML File in PHP, anstatt die Daten an Smarty zu übergeben. Nun parst Du mittels XSL Deine XML File in ein normales html File.
Diese Methode würde ich mittlerweile auch bei einem kompletten Umbau nehmen.
-
Hat keiner weiterführende Informationen dazu?
Tut mir leid Lx'er, aber ich kann damit nicht soviel anfangen. Hab leider bisher kaum Erfahrungen mit XML.
Was sagen die Anderen zu dieser Methode? Oder kann jemand eine sehr kompaktes und schnelles Template Skript empfehlen? Smarty ist mir einfach zu aufgebläht.
Danke
-
Dann mach dich doch hier mal schlau:
http://www.selfhtml.net/xml/index.htm
Wenn du was mit XML machen möchtest und die darin enthaltenen Daten in HTML ausgeben willst, dann wirst du um XSLT nicht rumkommen. Besonders weil es dafür schon viele fertige Sachen gibt, auch unter PHP
-
Danke! Genau sowas meinte ich...
Sry, falls ich mich etwas komisch ausgedrückt habe... Kennst Du noch andere gute Beispiele oder Tutorials, wo das recht Praxisnah erklärt wird? Speziell das Parsen von XML nach HTML?
Gruss
-
Uuups, schon wieder falsch ausgedrückt... Heut ist nicht mein Tag.
Ich meinte das Parsen von XML nach HTML mittels PHP... Hast Du darin schon Erfahrungen gesammelt(z. B. Performance), oder hälst Du das eher für ungeeignet?
Danke und Gruss
-
Selber hab ich mit der Verbindung XML, XSLT und PHP noch nichts gemacht. Bei meiner Ausbildung haben wir mal das ganze mit JSP gemacht.
Informationen zu PHP in Verbindung mit XML und XSLT findest du hier:
http://www.php.net/manual/de/ref.xml.php
http://www.php.net/manual/de/ref.xslt.phpIch kann dir höchstens noch grob erklären, wie das ungefähr aufgebaut ist mit XML und XSLT.
Also in der XML stehen die reinen Daten, wie z. B. auch in einer HTML-Datei mit Tags und Text. Die Umwandlung von XML zu HTML wird in der XSLT beschrieben. In dieser wird normalerweise genau beschrieben wie die Elemente der XML-Datei umzusetzen sind nach HTML.
Wenn du z. B. eine XML-Datei hast mit Adressen
<adressen> <adresse> <name>Manfred Mustermann</name> <strasse>Musterweg 9</strasse> <plz>99999</plz> <ort>Musterdorf</ort> </adresse> <adresse> ... </adresse> ... </adressen>
dann kannst du es in der XSLT so beschreiben, dass er die Adressen in einer Tabelle auflistet. Wenn z. B. das Element <adresse> kommt, dann soll ein <tr> ausgegeben werden. Bei <name></name>, soll dann ein <td>, der Inhalt und ein </td> kommen. Du gehst im Prinzip in der XSLT die Elemente einzelnen durch und verzweigst da auch nach unten.
Also nochmal in Kurzfassung:
.xml = reine Daten
.xslt = wie sollen die Daten umgesetzt werden
Parser in php = setzt die Daten in der xml über die Beschreibung in der xslt nach html umAlles klar?
-
Also erstemal besten Dank AJ!
Ich muss sagen, ich bin beeindruckt(im positiven :)). Das ganze kommt mir ehrlich gesagt sehr gut vor.
Dadurch hat man ein ziemlich sauberes Design. Bleibt nur noch zu hoffen, dass die Performance dabei auch mitspielt.
Wie waren Deine Erfahrungen unter jsp mit dieser Form der Datenaufbereitung? Lohnte sich der Mehraufwand?
-
Hmm das kann ich nicht so sagen, weil es eigentlich nur eine Übung war (schulische Ausbildung).
Allerdings programmiere ich zur Zeit selber ein Programm, dass .xml-Dateien verwendet bzw. verwenden soll ;). Allerdings nicht xslt und html. Natürlich gibt es einfachere und performantere Sachen seine Daten zu speichern, aber ich finde es um einiges übersichtlicher für einfache User mit xml. Man kann ja doch relativ schnell erkennen, wie die Daten aufgebaut sind. Wenn man mit HTML Erfahrung hat, dann ist es natürlich noch leichter. Ich finde es auch noch gut, dass man nicht extra Programme benötigt, um sich die Daten anzusehen oder auch zu ändern.
-
Seh ich genauso...
Ich habe nur bedenken, dass der Parsingvorgang etwas zu viel Ressourcen verschluckt. Immerhin wird für jede Seite einmal alles durch den Parser gesagt. Wiederum sind die Funktionen in C geschrieben, was wiederum schneller sein müsste, als in eine PHP geschriebene Template-Engine.
Aba Smarty muss weg. Die ist einfach total überladen!
Welche Template-Engine nutzt Du?
Gruss
-
Für mein Programm? Ich schreib es in VB.NET, da gibts auch XML-Klassen zum manuellen durchparsen. Wie gesagt ich verwende in dem Programm kein XSLT, weil ich auch kein HTML brauch. Ich lese da nur die Daten aus der XML-Datei aus.