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 :

Passer de l'xml en paramêtre à de l'xsl


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Points : 93
    Points
    93
    Par défaut Passer de l'xml en paramêtre à de l'xsl
    Je transforme un fichier xml dans une feuille xsl.

    A un moment donné dans cette transformation, j'ai besoin d'interroger de l'xml qui se trouve non pas dans un document mais sous forme de chaine de caractères.

    J'arrive à passer cette feuille en paramêtre à ma feuille xsl mais ensuite je n'arrive pas à la parcourir avec xsl (elle n'est pas reconnue comme un collection de noeuds).

    Alors comment passer correctement de l'xml (qui est sous forme de chaine de caractères) à du xsl pour ensuite le parcourir ?

    merco

  2. #2
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour Tristan,

    on peut passer en paramètre une chaîne de caractères, donc aussi
    une arborescence.

    elle n'est pas reconnue comme un collection de noeuds
    T'es tu assuré que ta chaîne de caractères était bien une arborescence conforme à XML ?
    Article : Installation de Cocoon
    Je ne réponds pas aux MP à caractère technique.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Points : 93
    Points
    93
    Par défaut
    En lui passant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <test>Valeur test</test>
    dans un paramêtre "param"


    en en faisant un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="$param"/>
    J'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <test>Valeur test</test>
    au lieu de :

    Donc xsl considère bien mon XML comme une chaine de caractère et pas comme du XML justement.

    Comment lui indiquer alors que c'est du XML ?

    merci

  4. #4
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour Tristan,

    en fait, avec le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="$param"/>
    ,
    la réponse que tu obtient n'est que celle que tu a demandé

    En fait, tu met un arbre Xml dans un paramètre param
    puis tu affiche la valeur de param, cad <test>Valeur test</test>
    Il n'y a aucune raison qu'il te retourne la chaine de caractère "Valeur test".

    En revanche, si tu considère l'arbre <test>Valeur test</test>
    comme un simple noeud Xml (en fait la racine) et que tu écrit
    une template qui sélectionne ce noeud et en affiche la valeur
    tu obtiendra bien la chaine de caractère "Valeur test".

    Si tu n'y arrive pas, alors fait-nous passons ton code, ce sera plus pratique
    Article : Installation de Cocoon
    Je ne réponds pas aux MP à caractère technique.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par polymorphisme Voir le message
    si tu considère l'arbre <test>Valeur test</test>
    comme un simple noeud Xml (en fait la racine) et que tu écrit
    une template qui sélectionne ce noeud et en affiche la valeur
    tu obtiendra bien la chaine de caractère "Valeur test".
    C'est exactement ce que je cherche à faire, le problème c'est que ma chaine de caractère n'est pas "évaluée comme une collection de noeuds".

    Xsl l'interprète comme du texte et pas comme un arbre.

    Donc comment passer de l'xml sous forme de chaine de caractère à de l'xsl et qu'il soit reconnu comme une collection de noeud ?

    C'est ça la véritable question.

  6. #6
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour,

    quelle template utilise tu ? Merci de faire passer ton code se sera surement plus facile.
    Article : Installation de Cocoon
    Je ne réponds pas aux MP à caractère technique.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Points : 93
    Points
    93
    Par défaut
    Ok si ça peut aider :

    Mon 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
     
    <?xml version="1.0" encoding="utf-8"?>
     
    <xsl:stylesheet
        version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:msxsl="urn:schemas-microsoft-com:xslt"
        exclude-result-prefixes="msxsl">
     
      <xsl:output method="html" encoding="utf-8" indent="yes"/>
     
      <xsl:param name="testParam"/>
     
      <xsl:template match="/">
     
    <!-- Je cherche à parcourir mon xml qui se trouve dans testParam -->
    <!-- xsl plante ici car "$testParam n'est pas évalué comme une collection de noeuds" -->
        <xsl:apply-templates select="$testParam"/>
     
      </xsl:template>
      <xsl:template match="testNode">
     
        <xsl:value-of select="."/>
     
      </xsl:template>
     
    </xsl:stylesheet>
    La chaine de caractères en paramêtre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <testNode>Valeur test</testNode>
    merci

  8. #8
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    A première vu, je ne vois pas comment résoudre cela.

    Peut-être avec la librairie exslt.
    Article : Installation de Cocoon
    Je ne réponds pas aux MP à caractère technique.

Discussions similaires

  1. [Débutant]Passer une classe abstraite en paramètre
    Par Invité dans le forum Débuter
    Réponses: 2
    Dernier message: 06/01/2006, 17h56
  2. [JAVA et XML] Message XML avec paramètre JAVA
    Par MiJack dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 09/11/2005, 10h22
  3. [XML & WebService] Faire "passer" un fic xml
    Par P4dre dans le forum Services Web
    Réponses: 7
    Dernier message: 03/08/2005, 14h47
  4. Comment passer un tableau dynamique en paramètre ?
    Par Charette dans le forum Langage
    Réponses: 2
    Dernier message: 21/04/2005, 11h28
  5. [FLASH 5] Passer une var ou un paramètre
    Par Harry dans le forum Flash
    Réponses: 8
    Dernier message: 18/03/2004, 17h46

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