xsl-list
[Top] [All Lists]

RE: Converting xml data to html using xsl/xslt

2004-02-11 15:58:05
You may want to start by laying out the html first so that you know what your 
end result should look like. Take a look at the file that your xsl is 
outputting, not rendered by a browser, and I think you will see what is 
happening more clearly.

Your template is matching the <slide> element. You have two slide elements in 
the slideshow, so you are getting two full copies of the html from your 
template. You probably want to start your match closer to the root

Here is a start for the xsl...

<xsl:template match="/slideshow">
  <table>
    <tr><th>data1</th><th>data2</th></tr>
    <xsl:for-each select="slide">
      <tr>
        <td><xsl:value-of select="data1"/></td>
        <td><xsl:value-of select="data2"/></td>
      </tr>
    </xsl:for-each>
  </table>
<xsl:template>

Hope this helps,
Josh

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com]On Behalf Of 
Anna Bikkina
Sent: Wednesday, February 11, 2004 2:01 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Converting xml data to html using xsl/xslt


Hi,

I have to convert a xml file into html. The data in xml has to be represented 
as tables. I have to write a xsl stylesheet and use xslt for the 
tranformation.

My xml file looks like this.

<slideshow>
        <slide> 
                <data1> xx1 </data1>
                <data2> xx2 </data2>
        </slide>

        <slide> 
                <data1> yy1 </data1>
                <data2> yy2 </data2>
        </slide>
</slideshow>

My existing xsl looks like this
  <xsl:template match="slide">
        <html>
                <title> SOAP AND XML</title>
                <style type="text/css">
                    code {color: #808080;}
                </style>
                <body>
                        <table border="1">
                                <xsl:for-each select="*">
                                        <tr>
                                                <th><xsl:value-of 
select="name()"/></th>
                                                <td><xsl:apply-templates 
select="." mode="value"/></td>
                                        </tr>
                                </xsl:for-each>
                        </table>
                </body>
        </html>

  </xsl:template>

I am getting data in seperate tables instead of in seperate rows. 

The data should be in a html table with data1 and data2 as headers and xx1,xx2 
in the first row and yy1 and yy2 in the second row.

I am not able to write a xsl to get this.

Can someone please help me write one.

Thanks,
Anna.


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


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