Create list in transformation : list « XSLT stylesheet « XML






Create list in transformation



File: Data.xml 
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="Transform.xslt" ?>
<neighbours>
  <planet name="Venus">
    <description>
    description
    </description>
    <diameter> 12104 km (7505 miles)</diameter>
    <moons> 0</moons>
    <meanTemp> 482C (900F)</meanTemp>
    <oneDay> 243.01 earth days</oneDay>
    <oneYear> 224.7 earth days</oneYear>
  </planet>

</neighbours>

File: Transform.xslt

<?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="4.0" indent="yes"/>
  <xsl:template match="/">
    <xsl:apply-templates/>
  </xsl:template>
  <xsl:template match="text()"/>
  <xsl:template match="neighbours">
    <html>
      <head>
        <title>A simple HTML page</title>
      </head>
      <body>
        <h1>Our neighbours</h1>
        <xsl:apply-templates/>
        <hr/>
        2006.
    </body>
    </html>
  </xsl:template>
  <xsl:template match="planet">
    <img width="100" height="100">
      <xsl:attribute name="src"><xsl:value-of select="@name"/>.jpg
      </xsl:attribute>
    </img>
    <h2>
      <xsl:value-of select="@name"/>
    </h2>
    <xsl:value-of select="description/text()"/>
    <ul>
      <xsl:apply-templates/>
    </ul>
  </xsl:template>
  <xsl:template match="diameter">
    <li>
      <strong>Diameter: </strong>
      <xsl:value-of select="text()"/>
    </li>
  </xsl:template>
  <xsl:template match="moons">
    <li>
      <strong>Moons: </strong>
      <xsl:value-of select="text()"/>
    </li>
  </xsl:template>
  <xsl:template match="meanTemp">
    <li>
      <strong>Mean temperature: </strong>
      <xsl:value-of select="text()"/>
    </li>
  </xsl:template>
  <xsl:template match="oneDay">
    <li>
      <strong>Length of one day: </strong>
      <xsl:value-of select="text()"/>
    </li>
  </xsl:template>
  <xsl:template match="oneYear">
    <li>
      <strong>Length of one year: </strong>
      <xsl:value-of select="text()"/>
    </li>
  </xsl:template>
</xsl:stylesheet>

Output:

<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>A simple HTML page</title></head>
   <body>
      <h1>Our neighbours</h1><img width="100" height="100" src="Venus.jpg%0A      "><h2>Venus</h2>
      description
      
      <ul>
         <li><strong>Diameter: </strong> 12104 km (7505 miles)
         </li>
         <li><strong>Moons: </strong> 0
         </li>
         <li><strong>Mean temperature: </strong> 482C (900F)
         </li>
         <li><strong>Length of one day: </strong> 243.01 earth days
         </li>
         <li><strong>Length of one year: </strong> 224.7 earth days
         </li>
      </ul>
      <hr>
      2006.
      
   </body>
</html>

 








Related examples in the same category

1.Create ordered list
2.Create index number