RE: [xsl] XSL to HTML table problem

Subject: RE: [xsl] XSL to HTML table problem
From: "Roger Glover" <glover_roger@xxxxxxxxx>
Date: Wed, 29 Jan 2003 11:53:31 -0600
James [mailto:arcjah@xxxxxxxx] wrote:

> I have an xml document that looks like the following:
> <Dictionary>
>     <WordDefinition>
>            <Word>Some Word</Word>
>            <Definition>First Definition</Definition>
>            <Definition>Second Definition</Definition>
>            <Definition>Third Definition</Definition>
>     </WordDefinition>
>     <WordDefinition>
>            <Word>Second Word</Word>
>            <Definition>First Definition</Definition>
>            <Definition>Second Definition</Definition>
>     </WordDefinition>
> </Dictionary>
>
> I have an xslt document that looks like the following:
   o /
----X---------- <snip>
   O \
> <xsl:for-each select="Dictionary/WordDefinition">
>     <xsl:sort select="Word"/>
>     <tr bgcolor="#99CCFF"><td><xsl:value-of
select="Word"/></td><td><br/></td></tr>
>     <xsl:for-each select="Definition">
>         <tr bgcolor="#99CCAA"><td><br/></td><td><xsl:value-of
select="."/></td></tr>
>     </xsl:for-each>
> </xsl:for-each>
   o /
----X---------- <snip>
   O \
> (My problem is, I want the word and first definition on the same row.)
> The above xsl transforms the xml document into a html document
> that has the word on one row, in the first column and the
> defintions in the second, third and forth row in the second column.
>
> Again I want to figure out how to make the word and first
> definition sit on the same row.
>
> I've heard about indexing the elements but I've never seen any
> examples of this.

Try the following in place of the isolated portion above:

<xsl:for-each select="Dictionary/WordDefinition">
    <xsl:sort select="Word"/>
    <tr bgcolor="#99CCFF">
        <td><xsl:value-of select="Word"/></td>
        <td><xsl:value-of select="Definition[1]"/></td> <!-- first def -->
    </tr>
    <xsl:for-each select="Definition[position() > 1]"> <!-- later defs -->
        <tr bgcolor="#99CCAA">
            <td><br/></td>
            <td><xsl:value-of select="."/></td>
        </tr>
    </xsl:for-each>
</xsl:for-each>


-- Roger Glover
   glover_roger@xxxxxxxxx



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread