IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSL] lien vers un noeud


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 274
    Points : 114
    Points
    114
    Par défaut [XSL] lien vers un noeud
    Bonjour tout le monde,

    j'ai un xml de dvdtheque et un xsl pour l'affichage
    le fichier xsl me renvoie une liste de titre

    est-il possible de faire en sorte quand cliquant sur ce titre je puisse modifier l'affichage pour afficher les informations de ce titre ( acteur, duree, etc.. )

    j'ouvre mon fichier XML directement avec le navigateur ( IE et/ou FF )

    Voici toujours mes sources
    dvdtheque.dtd
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <!ELEMENT dvdtheque (films*,genres*,acteurs*,realisateurs*,dispos*,origines*,nationalites*)>
      <!ELEMENT films (titre,genre*,acteur*,realisateur*,dispo*,origine*,synopsis)>
        <!ELEMENT titre (#PCDATA)>
          <!ATTLIST titre idfilm CDATA #REQUIRED
                          annee CDATA #REQUIRED
                          duree CDATA #REQUIRED>
        <!ELEMENT genre EMPTY>
          <!ATTLIST genre idg IDREF #REQUIRED>
        <!ELEMENT acteur EMPTY>
          <!ATTLIST acteur ida IDREF #REQUIRED>
        <!ELEMENT realisateur EMPTY>
          <!ATTLIST realisateur idr IDREF #REQUIRED>
        <!ELEMENT dispo EMPTY>
          <!ATTLIST dispo idd IDREF #REQUIRED>
        <!ELEMENT origine EMPTY>
          <!ATTLIST origine ido IDREF #REQUIRED>
        <!ELEMENT synopsis (#PCDATA)>
      <!ELEMENT genres (nomg*)>
        <!ELEMENT nomg (#PCDATA)>
          <!ATTLIST nomg idrefg ID #REQUIRED>
      <!ELEMENT acteurs (noma*)>
        <!ELEMENT noma (#PCDATA)>
          <!ATTLIST noma idrefa ID #REQUIRED
                         age CDATA #REQUIRED
                         idn IDREF #REQUIRED>
      <!ELEMENT realisateurs (nomr*)>
        <!ELEMENT nomr (#PCDATA)>
          <!ATTLIST nomr idrefr ID #REQUIRED
                         age CDATA #REQUIRED
                         idn IDREF #REQUIRED>
      <!ELEMENT dispos (nomd*)>
        <!ELEMENT nomd (#PCDATA)>
          <!ATTLIST nomd idrefd ID #REQUIRED
                         prix CDATA #REQUIRED>
      <!ELEMENT origines (nomo*)>
        <!ELEMENT nomo (#PCDATA)>
          <!ATTLIST nomo idrefo ID #REQUIRED>
      <!ELEMENT nationalites (nomn*)>
        <!ELEMENT nomn (#PCDATA)>
          <!ATTLIST nomn idrefn ID #REQUIRED>
    dvdtheque.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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <?xml version="1.0" encoding="ISO8859-1"?>
    <?xml-stylesheet type="text/xsl" href="dvdtheque.xsl"?>
    <!DOCTYPE dvdtheque SYSTEM "dvdtheque.dtd">
    <dvdtheque>
      <films>
        <titre annee="1990" duree="2H00" idfilm="01">Film 01</titre>
        <genre idg="g_ac"/>
        <acteur ida="a_01"/>
        <realisateur idr="r_01"/>
        <dispo idd="d_us"/>
        <origine ido="o_us"/>
        <synopsis>Lorem Ipsum</synopsis>
      </films>
     
      <genres>
        <nomg idrefg="g_ac">Action</nomg>
        <nomg idrefg="g_sf">Sience-Fiction</nomg>
      </genres>
     
      <acteurs>
        <noma age="40" idrefa="a_01" idn="n_us">Acteur 1</noma>
        <noma age="40" idrefa="a_02" idn="n_fr">Acteur 2</noma>
      </acteurs>
     
      <realisateurs>
        <nomr age="39" idrefr="r_01" idn="n_us">Réalisateur 1</nomr>
        <nomr age="39" idrefr="r_02" idn="n_fr">Réalisateur 2</nomr>
      </realisateurs>
     
      <dispos>
        <nomd prix="25,50" idrefd="d_us">U.S.A.</nomd>
        <nomd prix="25,50" idrefd="d_eu">Europe</nomd>
      </dispos>
     
      <origines>
        <nomo idrefo="o_us">Américain</nomo>
        <nomo idrefo="o_fr">Français</nomo>
      </origines>
     
      <nationalites>
        <nomn idrefn="n_us">Américain</nomn>
        <nomn idrefn="n_fr">Français</nomn>
      </nationalites>
    </dvdtheque>
    dvdtheque.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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
     
    <xsl:output 
        method="html" 
        encoding="ISO-8859-1" 
        doctype-public="-//W3C//DTD HTML 4.01//EN" 
        doctype-system="http://www.w3.org/TR/html4/strict.dtd" 
        indent="yes"/>
     
    <xsl:template match="/">
      <html>
      <head>
        <title>Dvdtheque</title>
      </head>
      <body>
        <xsl:for-each select="dvdtheque/films">
          <xsl:text>Titre du film </xsl:text><xsl:value-of select="titre"/><br/>
      </xsl:for-each>
      </body>
      </html>
    </xsl:template>
    </xsl:stylesheet>
    Vous remarquerez rien de bien spécial une simple page blanche avec la liste des films, mais je ne sais pas comment faire pour afficher uniquement le noeud du film en cliquant sur un titre

    Pourriez-vous m'aider svp
    d'avance merci de votre aide

  2. #2
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    Salut splifferwolf

    Pour t aider il me faut savoir si lorsque tu clique sur ton titre de film tu veux :

    -modifier l'affichage dans ta page
    ou
    -afficher une autre page

    Voila tu me dis et je te répondrai ... moyennent finance bien sur

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 274
    Points : 114
    Points
    114
    Par défaut
    bonjour laurentibus et merci de votre réponse

    donc je voudrais modifier la page en cliquant ( je suppose avec du javascript )
    mais ca ne me dérange pas non plus de changer de page

    mon objectif est de pouvoir afficher les détails d'un noeud ( ici films ) en cliquant sur le titre

    encore merci de votre aide

  4. #4
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    ok ben moi je te conseille d'utilisser javascript pour afficher/masquer tes infos supplementaire :

    tu aura un truc du style :

    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
     
     
    <a>
    <xsl:attribute name="OnClick">javascript:hide('tonNOMdeFilm');</xsl:attribute>
    <xsl:attribute name="title">details de <xsl:value-of select="@tonNOMdeFilm"/>
    </xsl:attribute>
    </a>
    <div id="tonNOMdeFilm"  style="display:none;">
    .... les details
    </div>
     
     
     
    <script type="text/JavaScript">
    					<xsl:text disable-output-escaping="yes">
    					<![CDATA[
    function Affichage(identifiant)
    {
    if(document.getElementById('identifiant').style.display=='block')
    document.getElementById('identifiant').style.display='none';
    else
    document.getElementById('identifiant').style.display='block';
    }
    ]]>
    					</xsl:text>
    					</script>

    bon apres peut etre qu y a des erreurs de syntaxe && cie.
    la principale difficulte est de faire une boucle dynamique du style un for each de 5-10 lignes mais qui pourrat traiter tout tes films et je sait pas si c possible de faire un appel de la fonction javascript dynamique la .... enfin tu vois et tu me tiens au jus ++

Discussions similaires

  1. XML avec liens vers XSL ET CSS !!
    Par Steff1985 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 23/03/2006, 12h39
  2. Lien vers Mozilla Firebird : il manque les themes
    Par Nasky dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 20/10/2003, 13h24
  3. lien vers un différent cadre
    Par FLB dans le forum Flash
    Réponses: 2
    Dernier message: 21/07/2003, 17h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo