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] Passer une variable à la fonction XPath document()


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut [XSLT] Passer une variable à la fonction XPath document()
    Bonjour.
    Dans un .xsl, je cherche à atteindre des noeuds via xpath dans un autre document (mon_fichier.xml) dont le path se trouve dans un fichier XML de config (config.xml). Pour mieux vous expliquer, voici comment ne pas y arriver (entre autres essais) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method ="xml" indent="yes" />
    <xsl:template match="/">
      <!--là aucun problème, j'obtiens bien "mon_ficher.xml", juste pour verifier-->
      <xsl:text>mon fichier : </xsl:text><xsl:value-of select="document('config.xml')/path"/>
      <!--là, je n'obtiens rien, pas même une erreur-->
      <xsl:text>contenu de monfichier : </xsl:text><xsl:value-of select="document(document('config.xml')/path)/contenu"/>
    </xsl:template>
    </xsl:stylesheet>
    voici les deux fichiers impliqués:
    mon_fichier.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0"?>
    <contenu>
      mon beau contenu
    </contenu>
    config.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0"?>
    <path>
      mon_fichier.xml
    </path>
    Je précise que je programme en php, mais je ne pense pas que le problème soit là.
    une Idée? Merci d'avance

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    C'est un vrai Copier-Coller ???

    Parce que je vois deux incohérences dans votre message : mon_fichier dans config.xml et /monficher dans le second <xsl:value-of> !!
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Non, ce n'est pas un vrai copié collé! J'ai modifier un peu le code pour le rendre plus lisible (et correct!). Notez que le premier value-of n'est là que pour verifier que j'atteins bien le path du fichier que je désir inclure. Au temps pour moi!

  4. #4
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Ouf!! résolut
    si ça peut intéresser quelqu'un la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="document(document('config.xml')/path)/contenu"/>
    fonctionne comme voulu, c'est à dire retourne "mon beau contenu" en quand je supprime les retours chariots dans mon config.xml comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <path>mon_fichier.xml</path>
    tout ça pour ça :/

  5. #5
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Sinon, la fonction normalize-space() aurait enlevé les sauts de ligne indésirables en début et en fin...
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  6. #6
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bon à savoir. Merci!

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

Discussions similaires

  1. [POO] Comment passer une variable à la fonction Date() ?
    Par Valki dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 12/10/2008, 19h42
  2. [PHP-JS] Passer une variable dans une fonction
    Par Ziltoid dans le forum Langage
    Réponses: 1
    Dernier message: 25/10/2007, 09h18
  3. [XSLT]passer une variable js dans une instruction xsl
    Par ounours dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 12/04/2007, 18h39
  4. Réponses: 3
    Dernier message: 26/06/2006, 13h48
  5. passer une variable d'une fonction à une autre
    Par Psyion dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/12/2005, 16h01

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