Bonjour,
Je suis débutant dans le monde de la programmation web.
J'ai un fichier xml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<?xml version="1.0" encoding="utf8" ?>
<?xml-stylesheet href="form.xsl" type="text/xsl" ?>
<Repertoire libelle="Un repertoire">
	<personne nom="Henry">
		<informations libellé="Ses informations">
			<age> 12 </age>
			<ville> Paris </ville>
		</informations>
	</personne>
	<personne nom="p2">
		<informations libellé="Ses informations">
			<age> 19 </age>
			<ville> Marseille </ville>
		</informations>
	</personne>
</Repertoire>
Et j'essaye de réaliser un code XSL, générique, qui quelque soit le fichier xml qu'on lui donne en entrée, nous ressort une page web contenant un formulaire pour chaque nœud.
Exemple:

Par rapport a ce document xml:
Un menu déroulant possédant uniquement Repertoire
Un second contenant tous les noms des personne
Un troisième pour les informations
et ainsi de suite jusqu'au feuille de l'arbre DOM

pour l'instant voici mon code XSL:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
<?xml version="1.0" encoding="UTF-8" ?><!-- DWXMLSource="qcm.xml" -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
	<xsl:output method="html" encoding="UTF-8" />
	<xsl:template match="/">
		<html>
  			<body>
				<xsl:apply-templates select="//*" />
			</body>
		</html>
	</xsl:template>
	<xsl:template match="*[not(preceding::node()[name()=name(current())])]">
		<div id="nom-form">	
      		 	<xsl:for-each select="//*[name()=name(current())]">
				<xsl:value-of select="name()" />
					<form>
                     <select name="{name()}">
						<xsl:apply-templates select="@*" />         
					 </select>
					</form>
				</xsl:for-each>
			</div>
	</xsl:template>
	<xsl:template match="@*">
		<option>
			<xsl:value-of select="." />
		</option>
	</xsl:template>
</xsl:stylesheet>
Merci pour votre aide