xsl-list
[Top] [All Lists]

Re: creating html tables from cells

2003-10-15 11:51:46
Hi Dan,
 I came up with a recursive solution.. The XSL is --

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:output method="html" version="1.0"
encoding="UTF-8" indent="yes"/>
        
<xsl:template match="/RS">
  <html>
    <head>
      <title/>
    </head>
    <body>
      <table>
        <xsl:for-each select="RI">
           <xsl:if test="@col = '1' ">                        <tr>              
                             
  <td><xsl:value-of select="." /></td>
                  <xsl:call-template name="process-xml-subset">
                                                                    
<xsl:with-param name="xml-subset"
select="following-sibling::RI"/>
                  </xsl:call-template>                        </tr>             
                           
</xsl:if>
        </xsl:for-each>
      </table>
   </body>
</html>
</xsl:template>
        
<xsl:template name="process-xml-subset">
   <xsl:param name="xml-subset"/>
     <xsl:if test="$xml-subset[1][(_at_)col &gt; 1]">
        <td>
          <xsl:value-of select="$xml-subset[1]"/>
        </td>
        <xsl:call-template name="process-xml-subset">
           <xsl:with-param name="xml-subset"
select="$xml-subset[position() &gt; 1]"/>
        </xsl:call-template>
     </xsl:if>          
</xsl:template>
</xsl:stylesheet>

Hope its useful..

Regards,
Mukul


--- "Whitney, Dan (CanWest Interactive)"
<DWhitney(_at_)canwest(_dot_)com> wrote:
2 questions.

I have the following xml structure:

<RS>
<RI col="1">Row 1 - Column 1</RI>
<RI col="2">Row 1 - Column 2</RI>
<RI col="3">Row 1 - Column 3</RI>
<RI col="4">Row 1 - Column 4</RI>
<RI col="1">Row 2 - Column 1</RI>
<RI col="2">Row 2 - Column 2</RI>
<RI col="3">Row 2 - Column 3</RI>
<RI col="4">Row 2 - Column 4</RI>
</RS>

I'm wondering if there's an effecient way with xsl
to transform it to:
<table>
  <tr>
    <td>Row 1 - Column 1</td>
    <td>Row 1 - Column 2</td>
    <td>Row 1 - Column 3</td>
    <td>Row 1 - Column 4</td>
  </tr>
  <tr>
    <td>Row 2 - Column 1</td>
    <td>Row 2 - Column 2</td>
    <td>Row 2 - Column 3</td>
    <td>Row 2 - Column 4</td>
  </tr>
</table>

I know I have to somehow create the tr's on the RS
element but I'm not at
all sure how.

Thanks for any help

Dan


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



__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com

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



<Prev in Thread] Current Thread [Next in Thread>