|
|||
XSLT – Grundsatzfrage
Hoi zäme,
Ich kämpfe gerade etwas mit XSLT, es tut nicht so, wie ich es will. Irgendwie verstehe ich da wohl das Prinzip nicht ganz. Momentan habe ich etwa das: test.xml Code:
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="xslt-style.xsl"?> <data> <content> <title>Importing XML Files</title> <back href="index.xml"/> <p>text</p> <s-xslt> <xsl:copy-of select="document('footer.xml')/data/content"/> </s-xslt> </content> </data> Code:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/> <xsl:template match="/data"> <html> <head> <title><xsl:value-of select="/data/title"/> – XSL</title> <link rel="stylesheet" type="text/css" href="../css/style.css" /> <xsl:copy-of select="/data/head"/> </head> <body> <xsl:apply-templates select="/data/back"/> <h1><xsl:value-of select="/data/title"/></h1> <xsl:apply-templates select="/data/content"/> </body> </html> </xsl:template> <xsl:template match="/data/back"> <a href="{@href}" class="backNobefore">< back</a> </xsl:template> <xsl:template match="s-xslt"> <code class="xslt"><xsl:copy-of select="."/></code> </xsl:template> <xsl:template match="*"> <xsl:copy-of select="."/> </xsl:template> </xsl:stylesheet> Meine Frage nun: Wie macht man das richtig? Mit apply-template müsste doch meines Erachtens der Inhalt von /data/content an die dortige Stelle kopiert werden und die templates darauf angewendet werden – etwa das für s-xslt. Oder? Granjow |
Sponsored Links |
|
|||
Zitat:
|
|
|||
Sorry, aber das XSLT-Forum ist verdammt schwer zu finden!
Das sollte Beispielcode werden. Könnte natürlich auch so aussehen: Code:
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="xslt-style.xsl"?> <data> <content> <title>Importing XML Files</title> <back href="index.xml"/> <p>text</p> <s-xslt><![CDATA[ <!-- deep copy of a node --> <xsl:copy-of select="document('footer.xml')/data/content"/> ]]></s-xslt> </content> </data> Granjow |
|
|||
*g*Dann wirds aber Zeit Ist nämlich echt was tolles, solange man nicht debuggen muss.
Kannst dir ja auch mal meine Seite oben anschauen, die habe ich auch mit XSLT transformiert. Granjow |
|
|||
Durchaus.
Allerdings kann das bei manchen Browsern zu Problemen führen. Ich habe eine XML-Datei mit XSLT aufbereitet bei der sich Opera weigert sie anzuzeigen, offenbar passt ihm nicht daß ein optionales Attribut nicht gefüllt ist... Ich pers. würde mich nicht vollständig drauf verlassen daß das überall geht. Bei speziellen Fällen ists ja egal, aber bei einer Webseite wärs mir zu riskant. [edit]Die Seite bzw. die Technik finde ich allerdings faszinierend. Nur will auch sie Opera nicht. Firefox schon... Geändert von Cyberman (05.08.2008 um 00:24 Uhr) |
|
|||
Mit Opera 9.5 sollte es gehen. Alte Version? Hast du bei deiner Seite vielleicht eine nicht ganz korrekte XML-Datei? Ich habe mich schon Stunden gefragt, wieso der IE eine Seite anzeigt und Firefox nicht, bis ich darauf gekommen bin, dass die XML-Deklaration auf der zweiten Zeile stand und die erste Zeile leer war. (Findet das irgendjemand in den Spezifikationen, dass die erste Zeile nicht leer sein darf?)
Ja, einige Browser unterstützen XSLT noch nicht (konqueror afaik), ist mir bei dieser Seite aber egal, da es mir hier vor allem um möglichst wenig Schreibaufwand und x-fach gleich vorhandene Daten geht, genau das halt, was ich in ein XSLT-Stylesheet packen kann. Wenn sie nicht ganz jeder anschauen kann, ist das nicht weiter schlimm, ist noch keine weltbekannte Seite. Safari und IE unterstützen XSLT btw auch. Granjow |
|
|||
Hum. 9.27 - offenbar zu alt.
Zitat:
An sich sollte es korrekt sein, nur verwende ich etliche Attribute die nur optionalen Inhalt haben bzw. vordefinierten Inhalt. Den frage ich dann im XSLT ab, und Opera (9.27) scheint das nicht zu mögen. Allerdings habe ich ehrlich gesagt auch nicht zu viel Zeit darauf verwendet - meine XML-Seite benutzen ev. 5 Leute, und ich kenne jeden davon und weiß daß keiner Opera verwendet... Zitat:
Der IE(6, +?) ist da ja ohnehin etwas heikel, soweit ich weiß - sobald die erste Zeile kein DocType ist geht er in den Quirks-Modus. Ev. liegts daran - der IE kann nicht flexibel erkennen was passiert. |
Sponsored Links |
|
|||
Hast du mal versucht, einfach das Dokument selber einzubinden? Also mit <xsl:copy-of select="document('asdf.xml')"/>? Eventuell bringt er dann eine Fehlermeldung, falls es nicht valid ist.
Granjow |
Sponsored Links |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Hilfsmittel zur Erstellung von XSLT - zur Transformation von XML zu HTML | AndreasB | (X)HTML | 2 | 23.11.2010 10:21 |
Grundsatzfrage über padding, Box sprengt vorhandene div box | michi-muc | CSS | 5 | 22.10.2009 15:39 |
XSLT Problem mit Auslesen der Daten | schnubbi | (X)HTML | 3 | 26.08.2008 20:54 |
Sinnvoller Einsatz von XSLT | xmariox | CSS | 2 | 24.01.2006 22:01 |
xhtml clientseitig aus xml und xslt | Ricochet | (X)HTML | 2 | 11.11.2005 21:19 |