RE: [xsl] generic xsl to transfrom xml to html

Subject: RE: [xsl] generic xsl to transfrom xml to html
From: Jarno.Elovirta@xxxxxxxxx
Date: Thu, 30 Jan 2003 09:26:46 +0200
Hi,

> I'm new to xslt and trying to use it to transform xml files 
> to html tables.
> 
> Here is the xml files format:
>   <Root>
>      <a1>value-of-a1</a1>
>      <a2>value-of-a2</a2>
>      <a3>
>          <a3i>value-ofa3i</a3i>
>          <a3ii>
>                <a3iia>value-ofa3iia<a3iia>
>                <a3iib>value-ofa3iib<a3iib>
>      </a3>
>      <a4>value-ofa4</a4>
>    ..
>   <Root>
> 
> The result I'm expected is like this:
>   a1                    value-of-a1
>   a2                    value-of-a2
>   a3 - a3i              value-of-a3i
>   a3 - a3ii - a3iia     value-of-a3iia
>   a3 - a3ii - a3iib     value-of-a3iib
>   a4                    value-of-a4
> 
> Is it possible to have one generic xsl that will do the 
> transformation for 
> all xml files with the same format?

E.g.

<xsl:template match="Root">
  <html>
    <head>
      <title />
    </head>
    <body>
      <table>
        <tbody>
          <xsl:apply-templates select="*" />
        </tbody>
      </table>
    </body>
  </html>
</xsl:template>

<xsl:template match="*[not(*)]">
  <tr>
    <td>
      <xsl:for-each select="ancestor::*[not(self::Root)] | .">
        <xsl:if test="not(position() = 1)"> - </xsl:if>
        <xsl:value-of select="name()" />
      </xsl:for-each>
    </td>
    <td>
      <xsl:value-of select="." />
    </td>
  </tr>
</xsl:template>

Cheers,

Jarno - Solitary Experiments: Depressive Frustration

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


Current Thread