[XSL] Transformation von URL + Text in a href=""
-
Hallo, ich will folgende (nur Auszug) XML-Datei transformieren:
<links> <link> <text>Hallo Welt</text> <url>www.c-plusplus.net</url> </link> </links>
Und zwar möchte ich aus dem link ein solches Ergebnis erstellen:
<a href="www.c-plusplus.net">Hallo Welt</a>
Soweit bin ich bisher mit meiner XSL gekommen:
<xsl:for-each select="link"> <xsl:for-each select="forum_link"> <a> <xsl:attribute name="href"><xsl:value-of select="url"/></xsl:attribute> <xsl:apply-templates/> </a> </xsl:for-each> </xsl:for-each>
Das funzt auch soweit. Nur wie bringe ich nun den Text von "text" dazu? Ich wollte ein weiteres <xsl:value-of select="text"> reinsetzen, aber anscheinend findet er das Element nicht, die Sache bleibt immer leer.
Wie kann ich das Element hier adressieren?
-
das weiß doch bestimmt einer?
-
Habe mal Deinen Codeschnippsel eingetippt.
Mozilla zeigt mir bisher als Ausgabe einen Link mit dem Text:
"www.c-plusplus.net Hallo Welt"
-
-
Hatte erst letzteres raus...
Probiers mal hiermit, dann sollte Hallo Welt der Linktitel sein:
XML:
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="test.xsl"?> <links> <link> <url>http://www.c-plusplus.net</url> <text>Hallo Welt</text> </link> </links>
XSL:
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> </xsl:for-each> <xsl:for-each select="links"> <xsl:for-each select="link"> <a> <xsl:attribute name="href"> <xsl:value-of select="url" /> </xsl:attribute> <xsl:value-of select="text" /> </a> </xsl:for-each> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>
edit: Code korrigiert
-
Doppelpost, siehe unten
-
Marucs codete:
XSL:<!-- ~~~~~~~~~~~ --> <xsl:for-each select="link"> <xsl:for-each select="forum_link"> <!-- ~~~~~~~~~~~ --> <a> <xsl:attribute name="href"><xsl:value-of select="url"/></xsl:attribute> <xsl:apply-templates/> </a> </xsl:for-each> </xsl:for-each>
Deine XML-Datei sieht etwas anders aus. Statt link(XSL) heißt es dort links(XML) und statt forum_link heißt es link. Dann passiert natürlich nichts.
-
Ah, das ist ein Copy&Paste-Fehler hier im Board. Also im Original stimmt das schon überein.
Trotzdem scharfes Auge.
Ich werde's mal testen.