Bonjour,
Je suis débutant dans le monde de la programmation web.
J'ai un fichier xml
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.
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>
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:
Merci pour votre aide
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>
Partager