Hallo,
Nun habe ich aber auf meiner Homepage auch ein paar XML-Dokumente, in denen ich Kopf und Menü ebenfalls mit dieser Methode einbinden möchte. Wenn ich den o.g. Code in die dazugehörige XSL-Datei schreibe, erhalte ich keine Fehlermeldung, aber der include-Befehl wird bei der Darstellung einfach ignoriert, während der Rest des Dokuments korrekt angezeigt wird.
Ich habe auch die erste Zeile der XSL-Datei folgendermaßen erweitert:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" version="1.0">
Das hilft mir aber nicht weiter.
Wie kann ich den include-Befehl in XML nutzen?
Überhaupt nicht.
Wenn du die XML/XSL-Transformation mit PHP machst*, rufst du einen XSL-Prozessor auf, ab dem Zeitpunkt ist dieser für die Datei zuständig und führ ihn ist ein "<?php include "menu0.php" ?>" nur eine Verarbeitungsanweisung mit der er nichts anfangen kann.
* Gilt eigentlich auch, wenn du das dem Browser überläßt.
Für dich heißt es, dass dein XSL zuerst von PHP selbst verarbeitet werden müsste, um die Elemente in den XSL _vor_ der TRanformation einzufügen (was u.U. dann dein XSL ungültig macht.
Oder du kannst für die Ausgabedokument eine Verarbeitungsanweisung in deinem XSL erzeugen:
(innerhalb eines Templates)
<xsl:processing-instruction name="php">xsl:textinclude "menu0.php"</xsl:text></xsl:processing-instruction name="php">
Damit hast du dann im Ergebnisdokument dein <?php include "menu0.php" ?>. Das bedeutet aber, dass dieses Dokument noch von PHP verarbeitet werden muss.
Grüße
Thomas