Subject: RE: Can i use apply-templates to match a xsl:template eleme nt?
From: Maria Amuchastegui <mamuchastegui@xxxxxxxxxxx>
Date: Fri, 18 Mar 2005 10:29:24 -0500
|
Can you post the XML data?
Maria
-----Original Message-----
From: Chris [mailto:phatfish@xxxxxxxxx]
Sent: Friday, March 18, 2005 10:19 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: Can i use apply-templates to match a xsl:template eleme
nt?
Hi thanks, i did look at call-template before in my testing but discarded it
because it didnt output my foreach loop in the template that i was calling.
But it does seem thats what i should be using, although im not sure why the
loop isnt being outputted -- and reading the specifications didnt really
make it any clearer :)
Bellow was the "main" template that i was hoping to output, it just contains
a test for-each loop.
Is it possible to have the template im calling output its content as i
wanted?
<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:include href="layout.xsl"/>
<xsl:include href="header.xsl"/>
<xsl:template match="releasepage" name="main" >
<div>A table for the main template</div>
<table>
<tbody>
<xsl:for-each select="releases/row">
<tr>
<xsl:for-each select="date">
<td>
<xsl:apply-templates/>
</td>
</xsl:for-each>
<xsl:for-each select="name">
<td>
<xsl:apply-templates/>
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</tbody>
</table>
</xsl:template>
</xsl:transform>
On Fri, 18 Mar 2005 08:45:45 -0500, Maria Amuchastegui
<mamuchastegui@xxxxxxxxxxx> wrote:
> You could do that with a named template:
>
> <?xml version="1.0" encoding="UTF-8"?> <xsl:transform version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output method="html"/>
> <xsl:template match="page">
> <html>
> <head>
>
> </head>
> <body>
> <div id="header">
> <xsl:call-template name="header"/>
> </div>
> <div id="main">
> <xsl:call-template name="main"/>
> </div>
> </body>
> </html>
> </xsl:template>
>
> <xsl:template name="header">
> <!-- do stuff here -->
> </xsl:template>
>
> <xsl:template name="main">
> <!-- do stuff here -->
> </xsl:template>
>
> </xsl:transform>
>
>
> -----Original Message-----
> From: Chris [mailto:phatfish@xxxxxxxxx]
> Sent: Friday, March 18, 2005 8:39 AM
> To: XSL List
> Subject: Can i use apply-templates to match a xsl:template element?
>
> I would like the output of a xsl:template element to appear in a
> specific location in stylesheet. Can i use apply-templates to match
> the template i want and have it output there?
>
> eg:
> <?xml version="1.0" encoding="UTF-8"?> <xsl:transform version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output method="html"/>
>
> <xsl:template match="page">
> <html>
> <head>
>
> </head>
> <body>
> <div id="header"><xsl:apply-templates
> select="header"/></div>
> <div id="main"><xsl:apply-templates
> select="main"/></div>
> </body>
> </html>
> </xsl:template>
>
> </xsl:transform>
>
> This file will be included into my stylesheets and used as a base
> layout. I would like the xsl:template with name="main" to output into
> the location above. But im not sure if this is allowed, does select
> only relate an element in the source xml document?
>
> I hope you can see what im trying to do, Thanks :)
|