Hi Sundar
<tr>
<th>
<xsl:value-of select="@displayname"/>
</th>
<xsl:for-each select="$y/*[position() = $x]">
<xsl:sort select="@displayposition"/>
<td>
<xsl:value-of select="." />
</td>
</xsl:for-each>
</tr>
Surely this for-each is responsible only for doing the *horizontal* layout
of your table?
Maybe you need to link your elements with @displayposition, not position().
<xsl:variable name="x" select="@displayposition" />
[...]
<xsl:for-each select="$y/*[(_at_)displayposition = $x]">
cheers,
TomSW
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list