XSLT-Anweisungen in HTML-Datei?
mattfi
- xsl
0 Thomas J.S.0 mattfi
1. Voraussetzung: Ich akzeptiere, dass die Client-seitige Verwendung von XSLT die Anzahl der Browser reduziert, mit denen meine Seiten betrachtet werden können.
Gegenstand: Ich habe Definitionslisten mit "n" Einträgen in (X)HTML-Dateien, halte aber nur eine Teilmenge der "n" Einträge für den normalen Betrachter für relevant.
2. Voraussetzung: Ich möchte keine gesonderten XML-Dateien ("Daten-Repository") ablegen und per XSLT in die (X)HTML-Dateien einlesen (in erster Linie, weil ich keine "kontextfreien" Dateien -- z.B. Dateien ohne Seitenkopf oder Menü -- auf dem Server herumliegen haben will.
1. Frage: Kann ich XSLT-Anweisungen in die (X)HTML-Datei einbauen und (X)HTML-Elemente damit für den normalen Betrachter "wegzaubern"?
2. Ist mein Ansatz überhaupt sinnvoll, oder wisst ihr etwas besseres?
Für eure Hilfe bedanke ich mich schon jetzt.
Hallo,
- Frage: Kann ich XSLT-Anweisungen in die (X)HTML-Datei einbauen und (X)HTML-Elemente damit für den normalen Betrachter "wegzaubern"?
Nein.
- Ist mein Ansatz überhaupt sinnvoll, oder wisst ihr etwas besseres?
Ja und Nein.
Du kannst dein Problem mittels JavaScript lösen, d.h. im konkreten, dass du aus einer HTML-Datei (gegebenfalls auch aus der generierten HTML-Datei) heraus die XML/XSL-Transformation auslösen (Stich-Buzz-Word: AJAX bzw. XMLHttpRequest)) und dabei auch Parameter per JavaScript an die Transformation weitergeben kannst.
Beispile aus dem Archiv:
http://forum.de.selfhtml.org/archiv/2005/1/t97848/#m597247
http://forum.de.selfhtml.org/archiv/2004/4/t78019/#m451662
Grüße
Thomas
Danke, Thomas.
»»»» Du kannst dein Problem mittels JavaScript lösen, d.h. im konkreten, dass du aus einer HTML-Datei (gegebenfalls auch aus der generierten HTML-Datei) heraus die XML/XSL-Transformation auslösen (Stich-Buzz-Word: AJAX bzw. XMLHttpRequest)) und dabei auch Parameter per JavaScript an die Transformation weitergeben kannst.
Hmm, ich habe eigentlich meine ganzen Seiten Javascript-frei erstellt. (Nicht nur, weil ich Javascript nicht programmieren kann, sondern auch, weil ich es, wenn es anders geht, bevorzugen würde, auf fremden Computern keine Scripts ablaufen zu lassen. Aber das wäre hier nebensächlich, denn wenn eine(r) ein Gratis-Glossar nützen darf, dann kann man ihn auch auf der Einstiegsseite darauf hinweisen, dass er (sie) Javascript bitte einstellen soll.)
Nun drängt sich mir folgender Gedanke auf:
Ich betrachte einmal meine XHTML-Dateien inkl. Navigation und Seitenkopf und pi-pa-po als mein (XML-) Daten-Repository. Aus einer zweiten Seite ("Suchseite") rufe ich nun die <DL> daraus auf. Notfalls auch mit PHP statt mit XSLT.
Vereinfache ich da nicht mächtig was.
Hallo,
Nun drängt sich mir folgender Gedanke auf:
Ich betrachte einmal meine XHTML-Dateien inkl. Navigation und Seitenkopf und pi-pa-po als mein (XML-) Daten-Repository. Aus einer zweiten Seite ("Suchseite") rufe ich nun die <DL> daraus auf. Notfalls auch mit PHP statt mit XSLT.
Es ist nunmal so, dass XSLT keine dynamische Sprache an sich ist. D.h. wenn du solche Sachen, wie "dem User erst nur einen Teil, dann einen anderen Teil anzeigen" brauchst, muss du entweder a) mit mehreren statischen Dateien - was du nicht willst und was ich verstehe oder b) mit Parameters arbeiten und das geht entweder mit JavaScript auf der Clientseite oder mit serverseitiger Verarbeitung.
Aber wenn du wirklich XHTML verwendest, was hindert dich daran ganz normal mit JavaScript und DOM Layers ein und auzublenden? Oder ist die Struktur deiner XHTML-Datei so sehr anderes als das was du darstellen möchtest?
Wenn du PHP verwendest (kommt auf die Version an) kannst du eigentlich relativ leicht die Parameterübergabe an XSLT machen und dem User dann nur noch statisches HTML ohne Scripting präsentieren.
Thomas Meinike hat hier schon mehrfach solche einfach PHP-Skripte gepostet:
PHP 5http://forum.de.selfhtml.org/archiv/2005/1/t99524/#m608066
PHP mit Sablotron: http://forum.de.selfhtml.org/archiv/2004/4/t77955/#m450495
Vereinfache ich da nicht mächtig was.
Wenn das eine Frage ist, verstehe ich sie leider nicht.
Grüße
Thomas