Helmut: Link im Template funktioniert im FF nicht

hallo,

Ich habe folgende zwei files:

test.xml
--------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl" ?>
<xml>
 <link>
  <txt>Test 1</txt>
  <url>http://www.test1.com</url>
 </link>
 <link>
  <txt>Test 2</txt>
  <url>http://www.test2.com</url>
 </link>
 <link>
  <txt>Test 3</txt>
  <url>http://www.test3.com</url>
 </link>
</xml>
--------------------------------------------------------

test.xsl
--------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de" dir="ltr">
 <head>
  <title><xsl:value-of select="data/site/title" /></title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 </head>
 <body>
  <xsl:element name="a">
   <xsl:attribute name="href"><xsl:value-of select="xml/link[1]/url" /></xsl:attribute>
   <xsl:value-of select="xml/link[1]/txt" />
  </xsl:element>
  <br />
  <br />
  <xsl:for-each select="xml/link">
   <xsl:call-template name="a" /><br />
  </xsl:for-each>
 </body>
</html>
</xsl:template>

<xsl:template name="a">
 <xsl:element name="a">
  <xsl:attribute name="href"><xsl:value-of select="url" /></xsl:attribute>
  <xsl:value-of select="txt" />
 </xsl:element>
</xsl:template>

</xsl:stylesheet>
--------------------------------------------------------

Im IE funktioniert das alles wunderbar. Im FF funktioniert der erste Link auch wunderbar. Aber alle anderen Links die ich in einem extra
template einbinde werden vom FF nicht als Links erkannt.
Hab schon einiges ausprobiert aber ich komm einfach nicht weiter.

Hat da jemand einen Tipp für mich?

besten Dank und Gruß, Helmut

  1. Hallo Helmut,

    <xsl:for-each select="xml/link">
       <xsl:call-template name="a" /><br />
      </xsl:for-each>

    probiere es statt dem Aufruf des benannten Templates im xsl:for-each-Konstrukt so:

    <a href="{url}"><xsl:value-of select="txt" /></a><br />

    BTW: Zum Element "xml": Dieses verletzt die XML-Namensregeln, welche die Zeichenkette "xml" am Anfang ausschließen.

    Grüße,
    Thomas