Subject: Re: [xsl] Can i use apply-templates to match a xsl:template eleme nt? From: JBryant@xxxxxxxxx Date: Fri, 18 Mar 2005 10:05:50 -0600 |
Would xsl:include do the trick? You can write a stylesheet that includes both of the stylesheets you reference here and build a document with the ordering you want. You might even be able to read the files to include from the elements of the document. So far, I've only needed to do static includes, so I can't say for sure. You should be able to specify which stylesheets to use via parameters, too. Just a thought. Jay Bryant Bryant Communication Services (presently consulting at Synergistic Solution Technologies) Chris <phatfish@xxxxxxxxx> 03/18/2005 09:52 AM Please respond to xsl-list@xxxxxxxxxxxxxxxxxxxxxx To xsl-list@xxxxxxxxxxxxxxxxxxxxxx cc 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, Chris | Thread | Re: [xsl] Can i use apply-templates, Chris |
RE: [xsl] Is this possible in XML/X, Aron Bock | Date | [xsl] Can't use any of the xdt func, chris |
Month |