DB/XML ==> Template ==> HTML
Eddie
- php
Hallo allerseits,
ich moechte Daten aus meiner DB, die in XML vorliegen, parsen und in ein HTML-Template einfuegen.
Ein Beispiel fuer das verwendete XML waere z.B.:
===========
<header>
<title>Bilder</title>
<foreword>Hier geht's um Bilder</foreword>
</header>
<bodyData>
<paragraph>
<title>Abschnitt 1</title>
<content>Hier wird bla erklaert</content>
<link>
<url>http://www.umdiewelt.de</url>
<label>umdiewelt.de</label>
</link>
<link>
<url>http://www.heise.de</url>
<label>heise.de</label>
</link>
</paragraph>
</bodyData>
===========
Das HTML-Template hierfür sähe z.B. so aus:
===========
<h1>{title}</h1>
...
<!-- ab hier Schleife fuer die einzelnen Abschnitte -->
<h1>{sub_title}</h2>
...
<!-- Schleifenende -->
===========
Ich schaetze, die richtige Vorgehensweise waere mittels der PHP-Funktion xml_parse_into_struct(...).
Daraus erhalte ich dann zwei Arrays, eins mit den Daten und ein Index-Array, das auf die Daten verweist.
Nur wie ist dann das weitere Vorgehen?
Ich kann zwar das Index-Array durchlaufen, aber woher weiss ich dann, ob ein <title>-Tag sich innerhalb von <header> oder innerhalb von <paragraph> befindet?
Und wie kann ich z.B. zuerst den gesamten <header>-Bereich abarbeiten und anschliessend nacheinander die <paragraph>-Bereiche?
Etwas ratlos, drum danke für eure Hilfe,
Eddie
Hallo Eddie!
ich moechte Daten aus meiner DB, die in XML vorliegen, parsen und in ein HTML-Template einfuegen.
Ich hab selbst bisher eher wenig mit PHP und XML gemacht, deswegen kann ich Dir nicht so wirklich weiter helfen.
Aber Dein Problem wäre an sich auch gut geeignet, es mittels XSLT zu lösen.
Du kannst Dir ja mal PHP Manual: CXXX. XSLT Functions durchlesen.
Ansonsten gibt es in PHP ja auch noch DOM XML (siehe PHP Manual: XXVII. DOM XML Functions), vielleicht wäre auch das etwas für Dich.
MfG
Götz
Hallo,
XSLT ist hierfür wirklich die beste Lösung. Allerdings würde ich gleich PHP5 nehmen, da ist der XSL Support schon standardmässig eingebaut. Die API hat sich in dem Bereich total geändert (nur der Aufruf XSL ist natürlich W3C Standard). Zu den neuen Funktionen:
http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17
Doku zu XSL selbst findest Du natürlich in Selfhtml.
Gruss
Marko