UPPREVIOUSNEXT  Technologies Internet et Education, © TECFA
  3. XSL de base

3. XSL de base

Opérations de base:

  1. Définir pour chaque balise une règle qui traduit la balise et son contenu
  2. Organiser l’application de ces règles, c.a.d. indiquer comment traiter le contenu.
  3. Note: Rappelez-vous que XSL est du XML (donc il faut respecter les principes de validité et de bien formé (pas de balises croisés par exemple !)

Rappel définition d’une règle ("template") avec xsl:template

 

Exemple 3-1: Exemples xsl:template match="xxx"

Une règle applicable à toutes les balises "project":

<xsl:template match="project">
  ......
</xsl:template>

3.1 Anatomie d’une simple feuille de style

 

3.2 Application de templates aux sous-éléments

A. <xsl:apply-templates />

 <xsl:template match="/">
    <html> <body>
      <xsl:apply-templates/>
    </body> </html>
  </xsl:template>
<page> 
<title>Hello Cocoon friend</title>
 <content>Here is some content :)  </content> 
 <comment>Written by DKS/Tecfa, adapted from S.M./the Cocoon samples </comment>
</page>
<xsl:template match="title"
>
   <h1 align="center"> <xsl:apply-templates/> </h1>
  </xsl:template>
<xsl:template match="content"
>
   <p align="center"> <xsl:apply-templates/> </p>
</xsl:template>

B. L’attribut "select" de apply-templates

<xsl:template match="page">
  <xsl:apply-templates select
="title"/>
</xsl:template>

Cette règle pourrait s’appliquer au texte XML suivant:

<page>
 <title>Hello Cocoon friend</title>
 <content>
  Here is some content. Olé !
 </content> 
 <comment>
      Written by DKS/Tecfa, adapted from S.M./the Cocoon samples
 </comment>
</page>

 

3.3 Déroulement de l’exécution des règles

En simplifiant .....

<page>
 <title>Hello Cocoon friend</title>
 <content
> <p> Here is some content. Olé ! </p> </content
> 
 <comment
> Written by DKS/Tecfa, adapted from S.M./the Cocoon samples </comment
>
</page>

La règle suivante ne marche pas, car comment n’est pas un enfant de content

<xsl:template match="content">
  <xsl:apply-templates select
="comment"/>
</xsl:template>

La règle suivante marche:

<xsl:template match="content">
  <xsl:apply-templates select
="p>
</xsl:template>
 

UPPREVIOUS NEXT -- TIE