ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
560
560
EMPFEHLEN
-
Hallo,
ich bin ein absoluter Newbie im, Thema XSLT. Nun habe ich die Aufgabe bekommen, ein XSLT zu schreiben, dass eine XML Datei, in eine andere Sprache übersetzt.
Beispiel:
Die Ursprungs-XML Datei sieht so aus:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="test.xsl" type="text/xsl"?> <VZV-PARTNER xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.vodafonelivepartners.com/schema/VZV-PARTNER.xsd"> <PARTNER-PI> <TRANSFORMER name="VZV-DEFAULT"/> </PARTNER-PI> <PARTNER-CHARGE> <AUTHORIZE-USAGE serviceid="my service id"/> </PARTNER-CHARGE> <PARTNER-BODY page-template="wallpaper-download"> <VZV-DEFAULT> <CONTAINER type="IMAGE"> <IMAGE href="iphone.jpg"/> </CONTAINER> </VZV-DEFAULT> </PARTNER-BODY> </VZV-PARTNER>
und rauskommen muss quasi gültiger HTML Code, sodass das Bild angezeigt wird.
Hier der Inhalt meiner XSL Datie:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <xsl:template match="/"> <html> <head> <title>Fit-ML Image Test</title> </head> <body> <xsl:apply-templates /> <img> <xsl:attribute name="src"> <xsl:value-of select="VZV-PARTNER/PARTNER-BODY/VZV-DEFAULT/CONTAINER/IMAGE/@href"/> </xsl:attribute> </img> </body> </html> </xsl:template> </xsl:stylesheet>
Das habe ich auch soweit hinbekommen. Hier nun einige Fragen dazu, auf die ich mir keinen Reim machen kann:
1) Ich kann ja nicht einfach in die urpsprungs-XML Datei das hiermit reinkopieren. Ich teste das ganze zur Zeit mit dem Firefox (also die XML einfach im Firefox öffnen) Im Produktiven Leben, wie weiß dann die XML Datei, dass sie genau diese xsl Datei nehmen soll? Das sagt der XML Datei wahrscheinlich dann der Server oder?Code :1
<?xml-stylesheet href="test.xsl" type="text/xsl"?>
2) Wie gehe ich denn generell eigentlich vor? Ich kann dass hierja nicht für alle möglichen auftretenen Fälle machen. Sprich für tabellen, für Farben usw. Oder gibt es da ein 'Mittel, mit dem ich das irgendwie vereinfachen kann?Code :1 2 3 4 5
<img> <xsl:attribute name="src"> <xsl:value-of select="VZV-PARTNER/PARTNER-BODY/VZV-DEFAULT/CONTAINER/IMAGE/@href"/> </xsl:attribute> </img>
3) Desweiteren verstehe ich nicht wie zum Kreuzgeier ich das gewollte Design hinbekommen. Angenommen es soll eine Tabelle mit 2 Zellen sein und diese Tabelle soll im linken Feld ein Bild haben, dass müsste ja ewig viele ifs im xsl geben?!
Ich weiß die meisten Fragen sind entweder dumm oder unvollständig aber ich versuche mir gerade ein Grundgerüst an Wissen darüber anzueignen, aber ich würde gern erstmal das Prinzip bzw. die Grundsätzliche herangehensweise verstehen
Danke und lieben Gruß
ChristianMfg
Chriﮎ ●̮̮̃•
-
Hallo Looky,
folgendes XSL-Stylesheet legt in der HTML-Datei eine Tabelle mit zwei Spalten an, wobei in der linken Spalte das Bild sein sollte.Das XSL:APPLY-TEMPLATES-Element wendet das andere Template innerhalb des ersten Tepmlates für jedes "PARTNER-BODY"-Kindelement an. In deiner XML-Datei gibt aber jetzt nur ein solches Kind. Wie würde die XML-Datei mit mehreren Partnern oder mehreren Bildern aussehen?Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <xsl:template match="/"> <html> <head> <title>Fit-ML Image Test</title> </head> <body> <table border="1" cellspacing="0" cellpadding="4"> <tr> <th>Bild</th> <th>Adresse</th> </tr> [COLOR="Blue"]<xsl:apply-templates />[/COLOR] </table> </body> </html> </xsl:template> [COLOR="Blue"]<xsl:template match="PARTNER-BODY">[/COLOR] <tr> <td> <img> <xsl:attribute name="src"> <xsl:value-of select="VZV-DEFAULT/CONTAINER/IMAGE/@href"/> </xsl:attribute> </img> </td> <td> <xsl:value-of select="VZV-DEFAULT/CONTAINER/IMAGE/@href"/> </td> </tr> [COLOR="Blue"]</xsl:template>[/COLOR] </xsl:stylesheet>
Zur ersten Frage:
Wenn du die XSL-Transformation vom Browser machen lässt, dann musst du das XSL-Stylesheet natürlich in der XML-Datei verlinken. Du kannst das aber auch beim Client per Script machen. Hier ist ein Beispel in JavaScript [JavaScript-Funktion ConvertXML2HTML()] dazu, das allerdings nur im IE funktioniert. Im Server könntest du die Transformation beispielsweise mit PHP machen und dann das Transformationsergebnis (die HTML-Datei) an den Client ausliefern.Geändert von hela (22.12.08 um 18:34 Uhr) Grund: Ergänzung
-
ok, cool, aber ich muss ein xsl script bauen, das individuell einsetzbar ist. sprich das bild könnte mal in der rechten, mal in der linken spalte stehen. mal hat die tabelle eine hintergrundfarbe mal nicht
mal handelt es sich um buttons mal um textfelder oder formulare.
kann ich das alles überhaupt in einer einzigen xls datei erschlagen? ich fühl mich da ein wenig hilflos.Mfg
Chriﮎ ●̮̮̃•
Ähnliche Themen
-
Dynamisches XML-Schema...Geht das überhaupt
Von masjab im Forum XML TechnologienAntworten: 7Letzter Beitrag: 14.07.08, 19:54 -
Zweimal gotoAndPlay, geht das überhaupt?
Von k1k0 im Forum Flash PlattformAntworten: 0Letzter Beitrag: 24.06.08, 15:31 -
mehrere DataRelations- geht das überhaupt?
Von paul meier im Forum .NET Windows FormsAntworten: 0Letzter Beitrag: 18.01.08, 19:19 -
EXEC(); Geht überhaupt nicht
Von real_benedikt im Forum PHPAntworten: 4Letzter Beitrag: 11.10.07, 16:23 -
transformieren des UVW helpers geht das überhaupt?
Von Andrew im Forum 3D Studio MaxAntworten: 8Letzter Beitrag: 09.02.03, 17:06





Zitieren

Login




