Nur bestimmte eines Elements erfassen
tone
- xsl
Hallo
ich habe folgende Varianten des Elements <link>
<link>Allianz Arena München#http://www.allianz-arena.de</link>
<link>http://www.allianz-arena.de/http://www.allianz-arena.de/</link>
<link>#http://www.allianz-arena.de#</link>
Jetzt will ich mit XSL daraus klickbare und vor allem verwertbare Links erstellen. Das letzte Beispiel würde mir keine Probleme bereiten. Einfach eine Variable erstellen und dann '#' herausfiltern, also ungefähr so:
<xsl:variable name="link"><xsl:value-of select="link"/></xsl:variable>
<xsl:variable name="link#bereinigt"> <xsl:value-of select="translate($link,'#','')"/> </xsl:variable>
Jetzt hätte ich gerne eine dritte Variable linkfinal, die sich (aus der Variablen link#bereinigt) alles inklusive 'http' nimmt bis zu einem weiteren auftreten von 'http', dann wären in meinen Augen nämlich auch die beiden ersten Fälle abgedeckt. Meine Kenntnisse reichen dafür aber leider nicht aus.....
Danke für die Hilfe.
Hallo,
ich habe folgende Varianten des Elements <link>
<link>Allianz Arena München#http://www.allianz-arena.de</link>
<link>http://www.allianz-arena.de/http://www.allianz-arena.de/</link>
<link>#http://www.allianz-arena.de#</link>
Jetzt will ich mit XSL daraus klickbare und vor allem verwertbare Links erstellen. Das letzte Beispiel würde mir keine Probleme bereiten. Einfach eine Variable erstellen und dann '#' herausfiltern, also ungefähr so:
<xsl:variable name="link"><xsl:value-of select="link"/></xsl:variable>
<xsl:variable name="link#bereinigt"> <xsl:value-of select="translate($link,'#','')"/> </xsl:variable>Jetzt hätte ich gerne eine dritte Variable linkfinal, die sich (aus der Variablen link#bereinigt) alles inklusive 'http' nimmt bis zu einem weiteren auftreten von 'http', dann wären in meinen Augen nämlich auch die beiden ersten Fälle abgedeckt. Meine Kenntnisse reichen dafür aber leider nicht aus.....
Um alle drei Möglichkeiten in einem Wisch abzudecken:
<xsl:for-each select="link">
<xsl:variable name="link" select="translate(., '#', '')" />
<xsl:variable name="clearlink">
xsl:choose
<xsl:when test="substring-before(substring-after($link, 'http:'), 'http:')">
<xsl:value-of select="concat('http:', substring-before(substring-after($link, 'http:'), 'http:'))" />
</xsl:when>
<xsl:when test="starts-with($link, 'http:')">
<xsl:value-of select="$link" />
</xsl:when>
xsl:otherwise
<xsl:value-of select="concat('http:', substring-after($link, 'http:'))" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<a href="{$clearlink}"><xsl:value-of select="$clearlink" /></a>
<br />
</xsl:for-each>
Aber ein <link>http://www.allianz-arena.de#Allianz Arena München</link> wird dadurch nicht abgedeckt.
Grüße
Thomas