RE: RE: How to implement an array
Well I have corrected the problem by adding an <xsl:if> to check if any children exist before inserting a <td>. (If children exists then a column will exist. So a <td> with or without data is necessary. Otherwise no <td> will be created. Here's the corrected template (I think it could be cleaner or more elegant. But I'll tinker with it when I learn more on XSL.) <xsl:template match="Table1/Item" mode="celldata"> <xsl:variable name="thisitem" select="."/> <tr> <xsl:for-each select="$Table1Struct/Item/*"> <xsl:variable name="ItemName" select="string(name(.))"/> <xsl:if test="count($thisitem/..//*[name(.)=$ItemName]) > 0"> <td> <xsl:value-of select="$thisitem/*[name()=name(current())]"/> </td> </xsl:if> </xsl:for-each> </tr> </xsl:template> I am still working on the parameter passing hurdle. Hoping for some help from you guys. Imrran --- Imrran Wahid <devguy2003@xxxxxxxxx> wrote: > Wendell, > The template you suggested seemed to have a flaw. ... > When no row in the table contains any element for a > particular column that column is excluded from the > colum heading. But the above template would insert a > blank cell in the table. So we get > Heading: Col1 Col2 Col3 > Data XXX YYY ZZZ > Data XXX YYY ZZZ > > instead of: > Heading: Col1 Col2 Col3 > Data XXX YYY ZZZ > Data XXX YYY ZZZ > > I think it is necessary to check if elements exist > for > all children nodes before inserting a cell data > (<td> > element). That was the logic I was struggling with. > > Imrran __________________________________________________ Do you Yahoo!? Yahoo! Shopping - Send Flowers for Valentine's Day http://shopping.yahoo.com XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format