hallo, ich versuche diese XML-datei via XSLT umzuformatieren:
<?xml version="1.0"?>
<?xml-stylesheet href="collection.xsl" type="text/xsl"?>
<collection>
<movie>
<title>Happy Gilmore</title>
<year>1996</year>
<genre>Comedy</genre>
</movie>
<movie>
<title>Rango</title>
<year>2011</year>
<genre>Animated</genre>
</movie>
<movie>
<title>Three Kings</title>
<year>1999</year>
<genre>Action</genre>
</movie>
</collection>
mit diesem code funktioniert es einwandfrei:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="collection">
<html>
<head>
<title>Movie-Collection</title>
</head>
<body>
<table border="1">
<tr>
<th>Title</th>
<th>Genre</th>
<th>Year</th>
</tr>
<xsl:apply-templates select="movie"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="movie">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="year"/></td>
<td><xsl:value-of select="genre"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
jetzt würde ich allerdings den teil, in der die tabelle erstellt wird, auch gerne in ein eigenes template auslagern und habe mir dazu gedacht es sollte mit folgendem code klappen, das tut es allerdings leider nicht:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<head>
<title>Movie-Collection</title>
</head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="collection">
<table border="1">
<tr>
<th>Title</th>
<th>Genre</th>
<th>Year</th>
</tr>
<xsl:apply-templates select="movie"/>
</table>
<xsl:template/>
<xsl:template match="movie">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="year"/></td>
<td><xsl:value-of select="genre"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
warum funktioniert das nicht, was soll ich hieran ändern?
vielen Dank!
Nikitaras