TechWeb
Accueil Codage HTML CSS DESIGN XML LaboCSS

XSLT : ecole

Les données : ecole.xml

Soit un fichier XML décrivant les résultats scolaires des élèves d'une école, classe par classe, matière par matière.

Sa Dtd est la suivante :

<!DOCTYPE ecole[

<!ELEMENT ecole (classe*)>

<!ELEMENT classe (maitre,eleves)>

<!ATTLIST classe niveau CDATA #REQUIRED>

<!ELEMENT maitre (nom,adresse)>

<!ATTLIST maitre sexe (h|f) #REQUIRED>

<!ELEMENT nom (#PCDATA)>

<!ELEMENT adresse (#PCDATA)>

<!ELEMENT eleves (eleve*)>

<!ELEMENT eleve (nom, notes)>

<!ATTLIST eleve id ID #REQUIRED an CDATA #REQUIRED sexe (h|f) #REQUIRED>

<!ELEMENT notes (francais,calcul,histoire,geo)>

<!ELEMENT francais (note*)>

<!ATTLIST francais coeff CDATA #REQUIRED>

<!ELEMENT calcul (note*)>

<!ATTLIST calcul coeff CDATA #REQUIRED>

<!ELEMENT histoire (note*)>

<!ATTLIST histoire coeff CDATA #REQUIRED>

<!ELEMENT geo (note*)>

<!ATTLIST geo coeff CDATA #REQUIRED>

<!ELEMENT note (#PCDATA)>

<!ATTLIST note id CDATA #IMPLIED>

]>

Le source : ecole.xml

Dont voici l'arbre partiellement développé :

arbre du document classe.xml

Récupérer le fichier ecole.xml

Ecole0) Créer une feuille style XSL constitué de deux règles

voir le résultat

Ecole1) Ajouter une règle classe qui affiche la valeur de son attribut "niveau" dans un paragraphe.

Document de synthèse

classe de cm1

classe de cm2

voir le résultat

Ecole 2) Modifier la règle classe de sorte qu'elle affiche en ligne : le niveau, suivi du nom de l'enseignant

Document de synthèse

classe de cm1 : Jean Seigner

classe de cm2 : Julie Deslivres

voir le résultat

Ecole 3) Préfixer le nom de l'enseignant part Monsieur ou Madame selon la valeur de l'attribut "sexe". Pour ce faire on crée une règle pour les maitre de sexe masculin et une règle distincte pour les maitres de sexe féminin.

Document de synthèse

classe de cm1 : Monsieur Jean Seigner

classe de cm2 : Madame Julie Deslivres

voir le résultat

Ecole 4) Créer une règle "eleve" permettant d'afficher le nom des élèves de chaque classe dans une liste

Document de synthèse

classe de cm1 : Monsieur Jean Seigner

classe de cm2 : Madame Julie Deslivres

voir le résultat

Ecole 5) Modifier la règle classe de sorte à afficher filles et garçons dans des listes distinctes

Document de synthèse

classe de cm1 : Monsieur Jean Seigner

Filles

Garçons

classe de cm2 : Madame Julie Deslivres

Filles

Garçons

voir le résultat

Ecole 6) Modifier la règle classe de sorte à afficher filles et garçons dans un tableau de deux colonnes (filles, garçons)

Document de synthèse

classe de cm1 : Monsieur Jean Seigner

Filles Garçons
  • Anais
  • Emilie
  • Cecile
  • Jean
  • Fabrice
  • Nicolas

classe de cm2 : Madame Julie Deslivres

Filles Garçons
  • Fanny
  • Rose
  • Bernard
  • Gabriel
  • Mustapha
  • Tristan

voir le résultat

Ecole 7) Modifier et ajouter les règles nécessaires pour afficher le détail des notes par élève et par matière pour chaque classe

Document de synthese

classe de cm1 : Monsieur Jean Seinier

Nom Français Calcul Histoire Geo
Filles
Anais 10 8 7 5 7 6 8 9 3 6 5
Emilie 7 10 8 4 6 7 3 4 10 8 8 9
Cecile 6 7 10 3 4 7 8 6 4 6 9
Garçons
Jean 5 8 9 7 7 8 6 4 6 9 10
Fabrice 8 8 9 9 7 8 8 5 9 5 3 7
Nicolas 10 3 10 4 6 7 3 4 6 7 8 6

classe de cm2 : Madame Julie Deslivres

Nom Français Calcul Histoire Geo
Filles
Fanny 5 3 7 7 7 5 7 6 8 9 10
Rose 6 7 10 3 4 7 8 6 4 6 9
Garçons
Bernard 4 6 7 9 8 7 8 6 5 3 6 5
Gabriel 9 10 8 4 6 7 3 4 10 8 8 9
Mustapha 8 4 9 9 7 8 8 7 9 5 3 7
Tristan 10 3 10 4 6 7 3 4 6 9 4 8

voir le résultat

Ecole 8) Afficher en rouge les notes sous la moyenne (<5) et afficher la moyenne de chaque élève en utilisant les fonctions count(xpath) qui compte le nombre d'éléments désignés par xpath et la fonction sum qui additionne les valeurs des éléments désignés par xpath.

Document de synthese

classe de cm1 : Monsieur Jean Seinier

Nom Français Calcul Histoire Geo
Filles
Anais 10 8 7
moyenne : 8.33
5 7 6
moyenne : 6
8 9
moyenne : 8.5
3 6 5
moyenne : 4.67
Emilie 7 10 8
moyenne : 8.33
4 6 7
moyenne : 5.67
3 4 10
moyenne : 5.67
8 8 9
moyenne : 8.33
Cecile 6 7 10
moyenne : 7.67
3 4 7
moyenne : 4.67
8 6 4
moyenne : 6
6 9
moyenne : 7.5
Garçons
Jean 5 8 9
moyenne : 7.33
7 7
moyenne : 7
8 6 4
moyenne : 6
6 9 10
moyenne : 8.33
Fabrice 8 8 9
moyenne : 8.33
9 7 8
moyenne : 8
8 5 9
moyenne : 7.33
5 3 7
moyenne : 5
Nicolas 10 3 10 ab
moyenne : 7.67
4 6 7
moyenne : 5.67
3 4 6
moyenne : 4.33
7 8 6
moyenne : 7

classe de cm2 : Madame Julie Deslivres

Nom Français Calcul Histoire Geo
Filles
Fanny 5 3 7
moyenne : 5
7 7
moyenne : 7
5 7 6
moyenne : 6
8 9 10
moyenne : 9
Rose 6 7 10
moyenne : 7.67
3 4 7
moyenne : 4.67
8 6 4
moyenne :ab 6
6 9
moyenne : 7.5
Garçons
Bernard 4 6 7
moyenne : 5.67
9 8 7
moyenne : 8
8 6 5
moyenne : 6.33
3 6 5
moyenne : 4.67
Gabriel 9 10 8
moyenne : 9
4 6 7
moyenne : 5.67
3 4 10
moyenne : 5.67
8 8 9
moyenne : 8.33
Mustapha 8 4 9
moyenne : 7
9 7 8
moyenne : 8
8 7 9
moyenne : 8
5 3 7
moyenne : 5
Tristan 10 3 10
moyenne : 7.67
4 6 7
moyenne : 5.67
3 4 6
moyenne : 4.33
9 4 8
moyenne : 7

voir le résultat

Valid XHTML 1.0 Strict Valid CSS!

Copyright Gabriel Braun 2007