Merci valal pour ta reponse, je vais expliquer en étant plus clair:
mon fichier xml ressemble à ça:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="analyse.xsl" type="text/xsl" ?>
<plan nature="Université ">
<batiment numero="1">
<salle numero="1.1" type="amphithéâtre" capacite="120" />
<salle numero="1.2" type="amphithéâtre" capacite="120" />
<salle numero="1.3" type="amphithéâtre" capacite="120" />
<salle numero="1.4" type="TD" capacite="45" />
</batiment>
<batiment numero="2">
<salle numero="2.1" type="TP informatique" capacite="24" />
<salle numero="2.2" type="TP informatique" capacite="24" />
<salle numero="2.3" type="amphithéâtre" capacite="120" />
<salle numero="2.4" type="TD" capacite="45" />
</batiment>
</plan> |
ma feuille de style doit générer dans un formulaire HTML une liste de déroulante par critère de recherche. suivant mon exemple, cela serai donc:
-la liste des batiment par numero.
-la liste des salle par numero.
-la liste de type de salle.
-la liste des capacités possibles.
alors je suis arrivé à faire ça de manière générique, i,e sans utilisé les nom de balise, comme par exemple:
1 2 3
|
<xsl:template match="*[not(preceding::node()[name()=name(current())])]">
... |
pour dire n'importe quel noeud de type element dont le nom n'est pas celui d'un element dejà trité...
alors quand j'ai créer le formulaire, j'ai 4 fois "amphithéâtre" dans la liste des types de salle, 4 fois "120"dans la liste des capacités...(en fait autant de fois que dans le fichier xml). car dans la fin de ma feuille de style j'ai mi:
1 2 3 4 5
|
<xsl:template match="@*">
<option>
<xsl:value-of select="." />
</option> |
j'espère que j'ai bien expliqué mon problème.
Partager