Dynamisch XML serverseitig zu XHTML umwandeln...!?
WauWau
- xml
Hola,
also, der Titel sagt es schon einigermaßen vielversprechend aus.
Da die sogenannten "Artikel" in Webseiten ja sooo beliebt sind,
dachte ich mir, ich könnte ja auch mal ein bisschen zusammen-
schreiben, immerhin hat WauWau ja auch was zu sagen ;) - naja,
wie dem auch sei, bei solchen ziemlich Textgebundenen Dingen
würde sich die Verwendung von XML imho wunderbar anbieten. Also,
was liegt näher, als die gesamten Dinger in wunderschönen XML-
Dateien zu speichern und beim "ansurfen" vom Besucher schön und
einfach mittels XSLT in (X)HTML umzuschreiben und an den Clienten
auszugeben?
Also habe ich mir erst einmal das Apache-Manual angeschaut. Die
verwenden da nämlich Content-Negotaition und haben in dem /manual/-
Verzeichnis noch eine ganze Menge xml-Dateien rumfliegen (ganz genau
genommen für jede Datei->Sprache eine), dazu noch DTD's und XSL's.
Sieht ganz nach dynamischer Umsetzung aus, doch was verrät ein
kleiner Blick in die httpd.conf und nachvollziehung einer Anfrage?
Hier ist nichts weiter als statisches HTML im Spiel, keine Ahnung
weswegen die die XMLs, DTD's und XSL-Dateien mitgespeichert haben,
wahrscheinlich wollten sie nur das Apache-download-Packet größer er-
scheinen lassen, dass alle Welt denkt, Apache wäre noch umfangreicher
und besser, als es sowieso schon ist (nichts gegen Apache ;-)...).
Naja, wurde halt auch nix draus, und deswegen habe ich mich nun
mal andersseitig umgeschaut (irgendwie gehen die 4/5 Stündchen
vom Anfang der Nacht extrem schnell rum...und danach habe ich auch
keine Lust mehr...). Was ich gefunden habe ist
http://xml.apache.org/
mit zahlreichen "Projekten", die am laufen sind. Hört sich aber
alles ziemlich komisch an...
Was ich gesucht hätte, wäre am besten etwas in PHP oder ähnlichem.
Gibt es da nichts?
Vielen Dank :),
WauWau
Hi,
also ich hab da mal mit Xalan was gemacht. Da ich am Apache selbst nicht groß rumkonfigurieren wollte, habe ich ein kleines PHP-Skript geschrieben, welches Xalan aufruft und die Transformation vornimmt. Außerdem könnte man an der Stelle auch einen Cache-Mechanismus einbauen.
Hier habe ich mal eine Suche für Dich verlinkt - über Xalan wurde hier schon einige Male diskutiert:
http://selfsuche.teamone.de/cgi-bin/such.pl?suchausdruck=xalan&lang=on&feld=alle&index_2=on&index_3=on&index_4=on&index_5=on&index_6=on&index_7=on&hits=100
Und die Xalan-Homepage:
<http://xml.apache.org/xalan-c/index.html
viele Grüße
Achim Schrepfer
Hallo,
vielleicht sollte man in diesem Zusammenhang auch auf Apache Cocoon hinweisen:
http://cocoon.apache.org/
Gruß
MichaelB
Hallo,
Was ich gesucht hätte, wäre am besten etwas in PHP oder ähnlichem.
Gibt es da nichts?
Fuer PHP bietet sich der XSLT-Prozessor Sablotron an (schau mittels phpinfo() nach, ob XSLT-Support existiert). Dann gestaltet sich das Prozedere relativ einfach:
$xmlres="bla.xml";
$xslres="blub.xsl";
$output="output.html"; // oder sonstiges Format wie SVG usw.
$xsltref=xslt_create();
// sofern unterstuetzt, kann die Kodierung der Ausgabe vorgegeben werden
// xslt_set_encoding($xsltref,"ISO-8859-1");
// bei Verwendung von Apache und PHP unter Windows ggf. den Suchpfad angeben, z. B.:
// xslt_set_base($xsltref,"file://x:/webserver/htdocs/.../");
$xslt_result=xslt_process($xsltref,$xmlres,$xslres,$output); // die eigentliche Transformation
// alternativ
// $xslt_result=xslt_process($xsltref,$xmlres,$xslres);
// dann enthaelt $xslt_result die generierte Ausgabe, sonst einen Wert bzgl. Erfolg --> 1 (true)
xslt_free($xsltref);
Etwas Fehlerhandling waere noch sinnvoll, Details zu den PHP/XSLT-Funktionen siehe: http://www.php.net/manual/de/ref.xslt.php.
MfG, Thomas