Thomas J.S.: Absätze aus XML mit XSL ausgeben

Beitrag lesen

Hallo,

es klappt jetzt wunderbar. Ich habe nur noch eine kleine Problem. Undzwar ich habe auch URLs in meinem XML:

...
<Link>
    <Url>www.selfhtml.org</Url>
    <Url-Text>Selfhtml</Url-Text>
</Link>
...

Der dazugehörige XSL-Teil:

...
<xsl:template match="Link/Url-Text">
<a>
  <xsl:attribute name="href">
   xsl:textmailto:</xsl:text>
   <xsl:value-of select="Link/Url" />
  </xsl:attribute>
  <p><b>xsl:apply-templates/</b></p>
</a>
</xsl:template>
...

Ich möchte, dass nur der URL-Text angezeigt wird, aber der URL wird auch mit gezeigt.

Wie kann dieses ich es verhindern?

<xsl:template match="Link">
  <a>
   <xsl:attribute name="href">
    xsl:choose
     <xsl:when test="contains(Url, '@')">
      <xsl:value-of select="concat('mailto:', Url)" />
     </xsl:when>
     <xsl:when test="starts-with(Url, 'www')">
      <xsl:value-of select="concat('http://', Url)" />
     </xsl:when>
     xsl:otherwise
      <xsl:value-of select="Url" />
     </xsl:otherwise>
    </xsl:choose>
   </xsl:attribute>
   <b>
    <xsl:value-of select="Url-Text" />
   </b>
  </a>
 </xsl:template>

<p> gehört nicht in einem <a>.

Grüße
Thomas

PS: du hast mich weder gestört, noch geärgert (na ja, zumindest nicht zu sehr ;-) )