|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: RE: How to implement an array
Imrran,
As you surmised, your problem is in your second template: Essentially what's messing you up is that you are iterating over your lookup table nodes ($Table1Struct) for *each* of the child nodes of your Item, and every time, you're creating <td> output if *any* child (descendant actually, as you have it) of your Item has the name you're looking for. Usually it will, and you are performing this test (count(Item/*) * count($TableStruct)) times. 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 ====================================================================== 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 ====================================================================== 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
|

Cart








