Exemple : Un programme XSLT pour générer du HTML

ExempleFichier XML source

1
<?xml version="1.0" encoding="iso-8859-1"?>
2
<document titre="XSLT">
3
4
<!--Première division-->
5
6
<div titre="XSLT : Un besoin">
7
<paragraphe>XML est un format de <important>représentation</important> de l'information.</paragraphe>
8
<paragraphe>XML n'est pas un format de présentation.</paragraphe>
9
</div>
10
11
<!--Seconde division-->
12
13
<div titre="XSLT : Un langage">
14
<paragraphe>XSLT est un langage de <important>manipulation</important> de documents XML.</paragraphe>
15
<paragraphe>XSLT est utilisé pour exporter une source XML sous un autre format, par exemple HTML.</paragraphe>
16
</div>
17
</document>

ExempleFichier HTML cible souhaité

1
<HTML>
2
3
<!--Head-->
4
5
<HEAD
6
<TITLE>XSLT</TITLE>
7
<META content="text/html" charset="iso-8859-1"/>
8
</HEAD>
9
10
<!--Body-->
11
12
<BODY>
13
<H1>XSLT : Un besoin</H1>
14
<P>XML est un format de <B>représentation</B> de l'information.</P>
15
<P>XML n'est pas un format de présentation.</P>
16
<H1>XSLT : Un langage</H1>
17
<P>XSLT est un langage de <B>manipulation</B> de documents XML.</P>
18
<P>XSLT est utilisé pour exporter une source XML sous un autre format, par exemple HTML</P>
19
</BODY>
20
</HTML>

ExempleProgramme XSLT permettant la transformation

1
<?xml version="1.0" encoding="iso-8859-1"?>
2
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
<xsl:output method="html" indent="yes" encoding="iso-8859-1"/>
4
5
<!--1ère règle-->
6
7
<xsl:template match="document">
8
  <HTML>
9
   <HEAD
10
    <TITLE><xsl:value-of select="@titre"/></TITLE>
11
    <META content="text/html" charset="iso-8859-1"/>
12
   </HEAD>
13
   <BODY>
14
    <xsl:apply-templates/>
15
   </BODY>
16
  </HTML>
17
</xsl:template>
18
19
<!--2nde règle-->
20
21
<xsl:template match="div">
22
  <H1><xsl:value-of select="@titre"/></H1>
23
  <xsl:apply-templates/>
24
</xsl:template>
25
26
<!--3ème règle-->
27
28
<xsl:template match="paragraphe">
29
  <P><xsl:apply-templates/></P>
30
</xsl:template>
31
32
<!--4ème règle-->
33
34
<xsl:template match="important">
35
  <B><xsl:value-of select="."/></B>
36
</xsl:template>
37
</xsl:stylesheet>