Subject: [xsl] First node processed repeatedly From: Imrran Wahid <devguy2003@xxxxxxxxx> Date: Fri, 7 Mar 2003 08:58:04 -0800 (PST) |
I am populating a table dynamically using xml data. The elements in the xml may be present or absent. So I set up all the possible fields in a lookup table (TableStruct). I need to cater for an element which may exist in one row but absent in another. So for each element in the lookup table, if a count of the row elements reveal that the named element exist in one or more row, I do a td entry and populate it accordingly. I have the following template which works ok for what I am doing: <xsl:template match="Rows/Row" mode="celldata"> <xsl:variable name="thisitem" select="."/> <tr> <xsl:for-each select="$TableStruct/Row/*"> <xsl:variable name="ItemName" select="string(name(.))"/> <xsl:if test="count($thisitem/..//*[name(.)=$ItemName]) > 0"> <td nowrap="true"> <xsl:value-of select="$thisitem/*[name()=name(current())]"/> </td> </xsl:if> </xsl:for-each> </tr> </xsl:template> I am now trying to make this template a named template (so I can reuse with different node-sets) as follows: <xsl:template name="OptionalFldsTblCellData"> <xsl:param name="row-node" select="/.."/> <xsl:param name="lookup-node" select="/.."/> <!--xsl:variable name="thisitem" select="."/--> <xsl:for-each select="$row-node"> <tr> <xsl:for-each select="$lookup-node/*"> <xsl:variable name="ItemName" select="string(name(.))"/> <!--xsl:if test="count($thisitem/..//*[name(.)=$ItemName]) > 0"--> <xsl:if test="count($row-node/..//*[name(.)=$ItemName]) > 0"> <td nowrap="true"> <xsl:value-of select="$row-node/*[name()=name(current())]"/> </td> </xsl:if> </xsl:for-each> </tr> </xsl:for-each> </xsl:template> I call the named template as follows: <xsl:call-template name="OptionalFldsTblCellData"> <xsl:with-param name="row-node" select="//Row"/> <xsl:with-param name="lookup-node" select="$TableStruct/Row"/> </xsl:call-template> However my table gets populated with repeated entries of the first row. So if i have 3 rows in the xml, I get 3 rows in the table showing the first row's data. Can you help spot the error? Thanks Imrran __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, more http://taxes.yahoo.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Beginning an XPath expres, Michael Kay | Thread | Re: [xsl] First node processed repe, Imrran Wahid |
RE: [xsl] CDATA - Can I have XML ?, David Carlisle | Date | RE: [xsl] why can not acces form el, Bhattachan, Ganesh |
Month |