Hallo,
- xml-dateien (tab1.xml und tab2.xml), die so aufgebaut:
<!DOCTYPE tabelle SYSTEM "../scripts/tab.dtd">
<?xml-stylesheet type="text/xsl" href="../scripts/tab.xsl" ?>
<gesamt>
....
</gesamt>
Dazu wurde schon was gesagt.
Was ich möchte / das Problem:
- Ich möchte die xml-dateien aber auf zwei verschiedene Arten ausgeben, einmal für normale User und einmal für Admins, also (meine Überlegung) müsste ich zwei xsl-dateien definieren, eine hab ich ja schon, die tab.xsl, also bräuchte ich noch ne adtab.xsl. Wie kann ich aber nun beim Aufruf der tab1.xml bzw tab2.xml dem Browser begreiflich machen, welche xsl er verwenden soll?
Eine andere Idee wäre eine xsl-datei zu nehmen und darin ne Fallunterscheidung vorzunehmen, aber das Problem bleibt, wie unterscheide ich dich?
Du hast dabei zwei Möglichkeiten:
a) falls du dein XML/XSL-Transformation serverseitig machst (PHP lässt darauf schließen)
Da brauchst du die Zeile "<?xml-stylesheet type="text/xsl" href="../scripts/tab.xsl" ?>" in deiem XML nicht unbedingt. Du kannst stattdessen den Namen der XSL-Datei als URL-Parameter an einem PHP-Script übergeben und dieses führt dann die entsprechende Transformation aus.
Beispiele findest du in den entsprechenden Seiten der PHP-Dokumentation oder im Archiv hier.
Die alternative: du brauchst nur eine XSL-Datei und wie du es vermutet hast, kannst du einen Parameter beim aufruf des PHP-Scripts übergeben, diesen Parameter wertest du in deinem XSL aus und dementsprechend wird ein anderer Zweig in deinem XSL ausgeführt.
Beispiele findest du in den entsprechenden Seiten der PHP-Dokumentation oder im Archiv hier.
b) du willst die XML/XSL-Transformation dem Browser überlassen (geht nur im IE, Mozilla, Firefox).
Dabei kannst du die Transformation aus einer HTML-Datei heraus per JavaScript anstoßen und du kannst dabei auch einen Parameter übergeben, diesen in deinem XSL auswerten ... den Rest kennst du schon.
Beispiele dazu findest du im Archiv von mir oder von Thomas Meinike.
Grüße
Thomas
PS: notiz an mich ... ich muss schläunigst die Artikel zu diesem Thema fertigschreiben ....