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 :

[XSLT] Probleme de recup d'une valeur XSL en javascript


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 17
    Points
    17
    Par défaut [XSLT] Probleme de recup d'une valeur XSL en javascript
    Bonjour j'ai un fichier XSL qui m'affiche sur une page le nom d'un artiste. ça, ça marche c'est pas le problème.

    Je voudrait récupérer la valeur "artist" en javascript en vue de la faire défiler par exemple (via un code javascript que j'ai déjà), la difficulté est que je ne sais pas comment récuperer cette valeur en javascript. Une idée ?

    Voila le 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" > 
    <xsl:output omit-xml-declaration="no" method="xml" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="utf8" /> 
    <xsl:template match = "/icestats" > 
    <html> 
    <head> 
    <title>Icecast Streaming Media Server</title> 
    </head> 
    <body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0"> 
     
    <script language='javascript'> 
    chart1.setDataURL(escape("xmlfile.xml?currTime=" + getTimeForURL()));/** * getTimeForURL method returns the current time * in a URL friendly format, so that it can be appended to * dataURL for effective non-caching. */ function getTimeForURL(){ var dt = new Date(); var strOutput = ""; strOutput = dt.getHours() + "_" + dt.getMinutes() + "_" + dt.getSeconds() + "_" + dt.getMilliseconds(); return strOutput; } 
    </script> 
     
    <xsl:for-each select="source"> 
    <xsl:choose> 
    <xsl:when test="listeners"> 
    <div> 
    <div> 
    </div> 
    <div> 
     
    <xsl:choose> 
     
    </xsl:choose> 
     
    <xsl:if test="authenticator"> <a href="/auth.xsl"></a> </xsl:if> 
     
    - A l'antenne: 
    <xsl:if test="artist"><xsl:value-of select="artist" /> - </xsl:if><xsl:value-of select="title" /> 
     
    </div> 
    <div> 
    </div> 
    </div> 
    <br /> 
    <br /> 
    </xsl:when> 
    <xsl:otherwise> 
    <h3><xsl:value-of select="@mount" /> - Not Connected</h3> 
    </xsl:otherwise> 
    </xsl:choose> 
     
    </xsl:for-each> 
    <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp; 
     
     
     
    </body> 
    </html> 
    </xsl:template>

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 557
    Points : 21 616
    Points
    21 616
    Par défaut
    Un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script language='javascript'>
      var artist = "<xsl:value-of select="expression-pour-obtenir-l-artiste"/>";
    </script>
    En ajoutant un truc pour remplacer les " par \".

    Mais le plus simple serait de mettre le nom de l'artiste entre balises dans le document, mettre un id à cette balise, et faire que le JavaScript anime cette balise.
    Plutôt que d'insérer des éléments variables dans le JavaScript.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 17
    Points
    17
    Par défaut
    ça ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script type="text/javascript">
    <![CDATA[
    var affiche_artiste = "<xsl:value-of select='artist' />";
    window.alert("Artiste = " + affiche_artiste);
    ]]>
    </script>
    L'alerte m'affiche "<xsl:value-of select='artist' />" au lieu de la valeur 'artist'

    Les balises DATA permettent d'inserer du code javascript dans un XSL, mais de toute façon ça ne donne rien.

    J'ai vu quelque part qu'on ne pouvait pas ajouter de javascript dans un fichier XSL, qu'il fallait charger le fichier depuis un script javascript avec un truc du genre xls.load("fichier.xsl") pour récuperer les valeurs du fichier XSL, est ce vrai ? si oui comment faire ? un petit exemple serait le bienvenue car je galère.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 17
    Points
    17
    Par défaut
    Autre essais entres les balises DATA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script type="text/javascript">
    <![CDATA[
    var affiche_artiste = "]]><xsl:value-of select="artist" /><![CDATA[ ";
    window.alert("Artiste = " + affiche_artiste);
    ]]>
    </script>
    là l'alerte n'affiche Artiste = Rien (vide).

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 17
    Points
    17
    Par défaut
    ouf j'ai trouvé voila comment j'ai fait

    je récupere donc dans une alerte javascript le contenu d'une valeur XSL il me manquait le <xsl:if>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script type="text/javascript">
    <![CDATA[
    var affiche_artiste = "]]><xsl:if><xsl:value-of select="artist" /></xsl:if><![CDATA[ ";
    window.alert("Artiste = " + affiche_artiste);
    ]]>
    </script>

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 557
    Points : 21 616
    Points
    21 616
    Par défaut
    J'avais jamais dit de mettre du CDATA, tu sais. Et je ne vois pas l'intérêt du <xsl:if>.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/07/2008, 08h03
  2. Réponses: 2
    Dernier message: 09/07/2008, 16h46
  3. Probleme vba pour renvoyer une valeur en fonction de deux criteres
    Par tarif dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/04/2008, 19h28
  4. Probleme de récupération d'une valeur dans un url
    Par xavpiaf dans le forum ASP.NET
    Réponses: 5
    Dernier message: 03/04/2008, 11h09
  5. [XSL - XMLDOM] Attibuer une valeur à xsl:param
    Par Trin dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/11/2005, 14h52

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