PHP und XML
Markus Bauer
- php
Hallo!
Ich bin mir nicht sicher, ob ich den Sinn/Konzept von XML verstanden habe.
Jedenfalls habe ich folgendes Problem:
Ich habe eine Plattform, die Produkte anbietet. Jedes Produkt muss jetzt aber in verschiedenen Formaten (allerdings HTML, später *eventuell* PDF) ausgegeben werden können:
o So wie es am Bildschirm erscheint (mit Formularen unsw)
o Als Ausdruck
o Als Multipart Email mit eingebetteten Bildern
o Als Multipart Email mit serverseitig verlinkten Bildern
o Als Textmail
o Zukunft: Wenn es leicht geht PDF Ausgabe
Das Problem ist halt auch, dass das System flexibel sein sollte, d.h. es wäre auch irgendwie cool, wenn ich PHP Code direkt eingeben könnte.
Bis jetzt habe ich ein Templatesystem, wobei es für jedes Fragment und jedes Medium eine html Datei gibt.
Das System ist aber sehr schlecht, weil es eben viele davon gibt, ausserdem ist es nicht wirklich möglich, PHP Code zu integrieren. Einzelne Ausgaben sind natürlich leicht zu erstellen, aber keine if-Abfragen und Schleifen.
So habe ich z.B. das Problem, dass bei 4 von 5 Items (die untereinander hingeschrieben werden) ein Rahmen dazu muss.
Ausserdem besteht das System aus sooo vielen Fragmenten.
Und manchmal muss eben das dazu, dann das weg unsw, also es ist nicht so einfach.
Ist es in diesem Fall intelligent, wenn ich das Layout von dem Item in XML definiere (wobei ich da ein eigenes XML Derivat entwickle) und dann für jeden Ausgabetyp einen Extra Parser schreibe?
Wie würdet ihr sowas machen?
Markus
Hallo,
Wie würdet ihr sowas machen?
So nicht. ;-)
Ist es in diesem Fall intelligent, wenn ich das Layout von dem Item in XML definiere (wobei ich da ein eigenes XML Derivat entwickle) und dann für jeden Ausgabetyp einen Extra Parser schreibe?
XML ist definitiv nicht dafür gedacht Layout zu definieren. Ganz im Gegenteil: XML ist dafür da, Informationen strukturiert zu erfassen und das von jewedem Layout unabhängig.
Es ist auch vollkommen unnötig, dass du irgendwelche eigene Derivate entwickelst, denn es gibt schon für deine Zwecke jede Menge davon: XSLT für die Ausgabe als HTML, TXT, CSV, RFT etc., XSL-FO für die PDF-Ausgabe.
Du brauchst dabei "lediglich" einen entsprechenden Stylesheet für die gewünschte Ausage zu erstellen.
Also entwerder kannst du deine Daten selbst als XML (Dateie(n)) speichern oder wenn du alles in einer DB hast, versuchen die Ausgabe die aus der DB kommt, als XML zu speichern und dies dann weiterverwenden.
PHP kannst du ja dazu benützen die DB-Abfrage(n) auszuführen und das Ergebnis als XML zu speichern und dann die Transformation auszuführen.
Es ist auch nicht nötig (bzw. würde die viel mehr Zeit kosten als du ahnst) eigene Parser zu schreiben. Es gibt auch für PHP XML- und XSLT-Prozessoren die du verwenden kannst.
Grüße
Thomas