RE: RE: [xsl] How to implement an array

Subject: RE: RE: [xsl] How to implement an array
From: Imrran Wahid <devguy2003@xxxxxxxxx>
Date: Fri, 14 Feb 2003 07:34:06 -0800 (PST)
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


Current Thread