|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Listing things in columns
Hi,
> Each Crate may have from 1 to more than 100 Oranges. When I list them
> alphabetically, in paragraph form, the code looks like this:
>
> <xsl:for-each
> select="//Object[@id=$CrateID]/Relationships/Relationship[Name
> ='Has_Orange']
> /ValueList/Value/Reference">
> <xsl:sort select="." data-type="text" order="ascending"/>
> <xsl:variable name="OrangeName" select="."/>
> <xsl:variable name="OrangeID" select="./@Id"/>
> <a href="{$OrangeID}"><xsl:value-of select="$OrangeName"/></a>
> <xsl:if test="position() != last()">, </xsl:if>
> </xsl:for-each>
>
> But this is messy. Instead, I would like to list them in
> three columns side
> by side.
>
> I tried the following:
> <table>
> <tr>
> <xsl:for-each
> select="//Object[@id=$CrateID]/Relationships/Relationship[Name
> ='Has_Orange']
> /ValueList/Value/Reference">
> <xsl:variable name="OrangeName" select="."/>
> <xsl:variable name="OrangeID" select="./@Id"/>
> <td>
> <a href="{$OrangeID}"><xsl:value-of select="$OrangeName"/></a>
> </td>
> <xsl:if test="position() mod 3 = 0"> [something here to
> end a row and
> start a new row]</xsl:if>
> </xsl:for-each>
> </tr>
> </table>
>
> But I couldn't make anything work inside the if test, because
> it doesn't
> like to see </tr><tr>.
Yours is a grouping problem--see <http://jenitennison.com/xslt/grouping>. If you want to sort the References, you have to use exslt:node-set() or two passes.
Cheers,
Jarno - Assemblage 23: Breath Of Ghosts (143 BPM)
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








