xsl-list
[Top] [All Lists]

RE: RE: How to implement an array

2003-02-14 08:34:06
Wendell,
The template you suggested seemed to have a flaw.

This template will do this:

<xsl:template match="Table1/Item" mode="celldata">
   <xsl:variable name="thisitem" select="."/>
     <tr>
       <xsl:for-each select="$Table1Struct">
         <td>
           <xsl:value-of
select="$thisitem/*[name()=name(current())]"/>
           <!-- selects that child of the Item
whose
name is the name of
                the $Table1Struct node we're
looking
at -->
           <xsl:if
             

test="not($thisitem/*[name()=name(current())])">
</xsl:if>
           <!-- if there is none, gives us a space
-->
         </td>
       </xsl:for-each>
   </tr>
</xsl:template>

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