move common xslt to "template " file? 2003-03-07 - By John Nikolai
Sorry, I replied only to klmccarthy with the resolution. Here it is for anyone else who needs it!
Thanks again for everyones help, - John
Begin forwarded message:
> > Thanks for everyones help. I got it working using this method... the > changes have been highlighted in bold. > > ----- > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:xalan="http://xml.apache.org/xslt"> > > <!-- Import external XSL --> > <xsl:import href="event_xml_format.xsl" /> > > <xsl:output method="xml" > indent="yes" > xalan:indent-amount="4" /> > > <xsl:template match="/"> > <calendar> > <xsl:apply-templates /> > </calendar> > </xsl:template> > > <xsl:template match="calendar"> > <xsl:for-each select="event"> > <xsl:choose> > <xsl:when test="number(substring(date,6,2)) > 2 > and number(substring(date,9,2)) > 1 > and number(substring(date,9,2)) < 5"> > > <!-- call out a named template imported above --> > <xsl:call-template name="event" /> > </xsl:when> > </xsl:choose> > </xsl:for-each> > </xsl:template> > > </xsl:stylesheet> > ----- > > Finally here is event_xml_format.xsl > ----- > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:xalan="http://xml.apache.org/xslt"> > > <!-- our named template --> > <xsl:template name="event"> > <event> > <date> <xsl:value-of select="date" /> </date> > <name> <xsl:value-of select="name" /> </name> > <type> <xsl:value-of select="type" /> </type> > <theme> <xsl:value-of select="theme" /> </theme> > <description> <xsl:value-of select="description" /> </description> > </event> > </xsl:template> > > </xsl:stylesheet> > ----- > > - John > > > On Wednesday, March 5, 2003, at 06:28 PM, klmccarthy@(protected) wrote: > >> For your second question, to handle the >> duplicated piece of <event> >> ... >> </event> >> elements, one way to handle this would be to >> write a named template which spit out this set >> of elements. Put this in the separate >> stylesheet which gets included at the top of >> the other two stylesheets (like a C header >> file). Then use call-template to invoke this >> at the correct spots. You may have to pass the >> current node (.) as a parameter. >> >> >>
|
|