Subject: RE: [xsl] Conditionally create an html table based upon existance of one or two node sets From: Rod Kane <rkane@xxxxxxxxxxxxxxxxxx> Date: Tue, 30 Mar 2010 14:39:46 -0400 |
Thanks Wendell, have not used that before and will look into it. Thanks again, Rod -----Original Message----- From: Wendell Piez [mailto:wapiez@xxxxxxxxxxxxxxxx] Sent: Tuesday, March 30, 2010 2:38 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] Conditionally create an html table based upon existance of one or two node sets Rod, At 02:02 PM 3/30/2010, you wrote: >I need to create a table if either the second and third >"apply-template" directives return nodes, and otherwise create nothing . Bind them to a variable so: <xsl:variable name="results"> <xsl:apply-templates .../> <xsl:apply-templates .../> </xsl:variable> then generate your table if $results has any content. In XSLT 1.0 the easiest way is to test for non-whitespace text: <xsl:if test="normalize-space($results)"> <table border="1" width="85%" > <xsl:copy-of select=$results"/> </table> </xsl:if> In XSLT 2.0 you can be smarter about what's inside $results. You can also split $results into two variables if you need to handle the two apply-templates results separately. Good luck, Wendell > "Fiscal Year" is the Dimension name and C02 and C09 are the > "Column Group Name"s, but the table creation is not quite correct > as the rows are not displayed correctly. > >Thank you in advance. > >Rod > > > ><?xml version="1.0"?> ><xsl:stylesheet version="1.0" >xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > ><xsl:template match="/"> ><HTML> ><BODY> > <xsl:apply-templates select="Template"/> > <xsl:apply-templates > select="Template/Queries/DataQuery/Abstract/Columns/Groups/Group/Dimensions/D imension[count(*) > = 0]"/> > <xsl:apply-templates > select="Template/Queries/DataQuery/Abstract/Rows/Groups/Group/Dimensions/Dime nsion[count(*) > = 0]"/> ></BODY> ></HTML> ></xsl:template> > > ><xsl:template match="Template"> > <B> Template Name: <xsl:value-of select="@Name" > /> </B> > <BR/><BR/> > > <xsl:choose> > <xsl:when > test="./Queries/DataQuery/Abstract/Columns|Rows/Groups/Group/Dimensions/Dimen sion[count(*) > = 0]"> > > <TABLE BORDER="1" width="85%" > > <TR BGCOLOR="D3D3D3" > > <TD > width="65%"> <xsl:text>Dimension Name</xsl:text> </TD> > <TD> > <xsl:text>Column Group Name</xsl:text> </TD> > </TR> > </TABLE> > > </xsl:when> > </xsl:choose> > ></xsl:template> > > > > ><xsl:template match="Dimension"> > > <xsl:for-each select="."> > <TR BGCOLOR="D3D3D3" > > <TD > width="65%"> <xsl:value-of select="./@Name" /> </TD> > <TD> > <xsl:value-of select="../../@Name" /> </TD> > </TR> > </xsl:for-each> > ></xsl:template> > > ></xsl:stylesheet> > ====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Conditionally create an h, Wendell Piez | Thread | RE: [xsl] Conditionally create an h, Michael Kay |
Re: [xsl] Conditionally create an h, Wendell Piez | Date | RE: [xsl] Conditionally create an h, Michael Kay |
Month |