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.
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:
Voila ce que j'obtiens actuellement:
[URL=http://www.hostingpics.net/viewer.php?id=966221xslform.png][IMG]http://img11.hostingpics.net/thumbs/mini_966221xslform.png[/IMG][/URL]
Et en faite je voudrais juste que les champs qui possèdent le même nom se retrouve dans le même menu déroulant.
Exemple que pour personne on est un menu déroulant avec toutes les personnes présente dans le document xml.
Pareil pour age ville etc
Pour les informations qui se rapporte a qui pour l'instant je n'en tiens pas compte.
Dans le futur a chaque fois que l'on choisira un élément dans le menu déroulant le plus haut, exemple dans personne, seules les informations concernant la personne seront affiché
Merci pour votre aide
Modifié par atchoum34 (03 Feb 2012 - 17:03)
Je suis débutant dans le monde de la programmation web.
J'ai un fichier xml
<?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:
<?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>
Voila ce que j'obtiens actuellement:
[URL=http://www.hostingpics.net/viewer.php?id=966221xslform.png][IMG]http://img11.hostingpics.net/thumbs/mini_966221xslform.png[/IMG][/URL]
Et en faite je voudrais juste que les champs qui possèdent le même nom se retrouve dans le même menu déroulant.
Exemple que pour personne on est un menu déroulant avec toutes les personnes présente dans le document xml.
Pareil pour age ville etc
Pour les informations qui se rapporte a qui pour l'instant je n'en tiens pas compte.
Dans le futur a chaque fois que l'on choisira un élément dans le menu déroulant le plus haut, exemple dans personne, seules les informations concernant la personne seront affiché
Merci pour votre aide
Modifié par atchoum34 (03 Feb 2012 - 17:03)