Bonjour.
J'ai passé des heures à chercher, chercher et rien, de vagues bidouilles sans issue.
J'ai créé un xml. Je souhaite, par défaut, afficher tous les nom des trucs sur une page (sans leurs fils, à savoir les bidules). Ici je le fait à l'aide d'un xsl parce que je ne voyais pas d'autres solutions.
Le problème est le suivant : lorsque l'on clique sur le nom d'un truc, je souhaitrais que s'affiche (sous celui-ci) tous ses chers enfants les bidules !
Et quand on reclique, qu'ils disparaissent.
En fait, c'est à peu près ce que ferait firefox avec les "+" et les "-" si vous regardez le fichier machins.xml avec firefox.
C'est peut-être pas dur mais c'est impossible pour moi
Voici la source du xml :
Voici la source du fichier machins.xsl qui le représente PAR DEFAUT :
Merci d'avance à tous.
Modifié par metrallik (05 Sep 2006 - 01:23)
J'ai passé des heures à chercher, chercher et rien, de vagues bidouilles sans issue.
J'ai créé un xml. Je souhaite, par défaut, afficher tous les nom des trucs sur une page (sans leurs fils, à savoir les bidules). Ici je le fait à l'aide d'un xsl parce que je ne voyais pas d'autres solutions.
Le problème est le suivant : lorsque l'on clique sur le nom d'un truc, je souhaitrais que s'affiche (sous celui-ci) tous ses chers enfants les bidules !
Et quand on reclique, qu'ils disparaissent.
En fait, c'est à peu près ce que ferait firefox avec les "+" et les "-" si vous regardez le fichier machins.xml avec firefox.
C'est peut-être pas dur mais c'est impossible pour moi
Voici la source du xml :
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="machins.xsl"?>
<!DOCTYPE machins [
<!ELEMENT machins (trucs+)>
<!ELEMENT trucs (bidule+)>
<!ATTLIST trucs nom CDATA #REQUIRED>
<!ELEMENT bidule (#PCDATA)>
<!ATTLIST bidule code ID #REQUIRED relatif IDREFS #IMPLIED>
]>
<machins>
<trucs nom="maison">
<bidule code="A-1" relatif="A-2 A-4">porte</bidule>
<bidule code="A-2" >fenêtre</bidule>
<bidule code="A-3" >cheminée</bidule>
<bidule code="A-4" >volet</bidule>
</trucs>
<trucs nom="voiture">
<bidule code="B-1" relatif="B-3">néon K2000</bidule>
<bidule code="B-2" >volant qu'on pète type "moumoute" professionnel</bidule>
<bidule code="B-3" >sapin qui sent bon</bidule>
</trucs>
<trucs nom="boîte">
<bidule code="C-1" >chaussure</bidule>
<bidule code="C-2" >cassoulet</bidule>
<bidule code="C-3" relatif="C-1 C-4">vampire</bidule>
<bidule code="C-4" >pochtron</bidule>
</trucs>
</machins>
Voici la source du fichier machins.xsl qui le représente PAR DEFAUT :
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="machins/trucs">
<span style="font: bold 12px verdana">
<xsl:value-of select="@nom" /><br />
</span>
<span><br /></span>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Merci d'avance à tous.
Modifié par metrallik (05 Sep 2006 - 01:23)
, je crois que ce qu'il propose c'est d'avoir un document XHTML, disposant d'un javascript appelant lui même du code XSLT. Dans ce cas, au lieu de modifier l'affichage par la modification d'une propriété CSS comme je l'avais proposé, il modifie la structure du document pour retirer ou pas un contenu. Cela fonctionne également, pour peu que le navigateur dispose d'un processeur XSLT. Mais il faut bien voir que, dans ce cas, le XSLT est dans le javascript (coté client), et non l'inverse.
!!