Subject: RE: [xsl] Can i use apply-templates to match a xsl:template eleme nt? From: Maria Amuchastegui <mamuchastegui@xxxxxxxxxxx> Date: Fri, 18 Mar 2005 11:43:41 -0500 |
Is this what you had in mind? <?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="/"> <html> <head> <title/> </head> <body> <div>A table for the main template</div> <table> <tbody> <xsl:apply-templates select="//row"/> </tbody> </table> </body> </html> </xsl:template> <xsl:template match="//row"> <tr> <td> <xsl:value-of select="date"/> </td> <td> <xsl:value-of select="name"/> </td> </tr> </xsl:template> </xsl:transform> -----Original Message----- From: Chris [mailto:phatfish@xxxxxxxxx] Sent: Friday, March 18, 2005 10:52 AM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] Can i use apply-templates to match a xsl:template eleme nt? Thats the xml data, its a work in progress, so dont be too harsh on it :) Its generated and transformed in PHP5 to output HTML. releases is the data for the loop, releasepage is whats being matched by my xsl:template element at the moment. <?xml version="1.0"?> <page> <header stylesheet="header.xsl"/> <body stylesheet="releases.xsl"> <releasepage> <releases> <row iteration="0"> <date>2005-01-01</date> <name>Release Name 1</name> </row> <row iteration="1"> <date>2005-01-02</date> <name>Release Name 2</name> </row> <row iteration="2"> <date>2005-01-03</date> <name>Release Name 3</name> </row> <row iteration="3"> <date>2005-01-04</date> <name>Release Name 4</name> </row> <row iteration="4"> <date>2005-01-05</date> <name>Release Name 5</name> </row> <row iteration="5"> <date>2005-01-06</date> <name>Release Name 6</name> </row> </releases> </releasepage> </body> <footer stylesheet="footer.xsl"/> </page> Thanks for the comment btw Jay, i didnt notice another reply untill i had sent the mail before :) On Fri, 18 Mar 2005 10:29:24 -0500, Maria Amuchastegui <mamuchastegui@xxxxxxxxxxx> wrote: > 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: [xsl] 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: [xsl] 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 :)
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Can i use apply-templates, Aron Bock | Thread | [xsl] implementation of xslt 2.0 wo, meesala dinesh |
Re: [xsl] translate array delimiter, Wendell Piez | Date | RE: [xsl] translate array delimiter, Aron Bock |
Month |