xsl-list
[Top] [All Lists]

RE: RE: How to implement an array

2003-02-13 18:43:09
Wendell,
It's a neat solution. Thanks for the time you took to
help me resolve this along the way. It's been bugging
me for a while. Now I'm off to implement it with
several different tables being defined in the lookup
file.

Once again, thanks to you and all who make this list a
healthy resource for learning.

Imrran


It's tricky and confusing. In order to get the logic
right, you actually 
have to invert it. First iterate over the lookup
nodes in $Table1Struct, 
creating a <td> for each one. Then its value: you
want the value of that 
child of your Item that passes your name test; if
there is none, presumably 
(this being HTML) you want a placeholding
non-breaking space.

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>

Please ask about anything mysterious here.

Cheers,
Wendell



__________________________________________________
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