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 :

[XML][debutant] reference sur arborescence d'un autre fichier xml


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 46
    Points : 38
    Points
    38
    Par défaut [XML][debutant] reference sur arborescence d'un autre fichier xml
    Bonjour,

    J'ai deux fichiers .xml ayant la synthaxe suivante :
    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
     
    fichier : a.xml
    <rapport date="01/01/2006">
    	<rubrique id="rubrique_1">
    		<element id="M" actuel="1" />
    		<element id="C" actuel="2" />
    		<element id="D" actuel="3" />
    	</rubrique>
    </rapport>
     
    fichier : b.xml
    <rapport date="01/01/2006">
    	<rubrique id="rubrique_1">
    		<element id="M" actuel="4" />
    		<element id="C" actuel="5" />
    		<element id="D" actuel="6" />
    	</rubrique>
    </rapport>
    Je souhaite afficher une synthèse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    [Rubrique :  rubrique_1]
     
    elements | 01/01/2006 | 01/02/2006 | Evolution |
    ------------------------------------------------
     M       |      1     |      2     |   + 1     |
    ------------------------------------------------
     C       |      2     |      4     |   + 2     |
    ------------------------------------------------
     D       |      3     |      6     |   + 3     |
    ------------------------------------------------
    Pour ce faire, soit je fais dans le fichier "b.xml" reference à "a.xml"
    Soit, je cree un fichier tiers avec reference sur "a.xml" et "b.xml"
    ce qui est plus propre.

    Maintenant le probléme :
    Je dois parcourir l'arborescence d'un fichier (par exemple celui de "a.xml")
    et pour chaque element de celui ci, je dois aller chercher le noeud equivalent dans "b.xml"

    j'essaye d'utiliser les variables :

    Lorsque je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	<xsl:variable name="a">
    		<xsl:value-of select="document('a.xml')/rapport/@date"/>
    	</xsl:variable>
    	<xsl:value-of select="$a" />
    j'obtiens bien : 01/01/2006

    mais lorsque j'essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	<xsl:variable name="a">
    		<xsl:value-of select="document('a.xml')/rapport"/>
    	</xsl:variable>
    	<xsl:value-of select="$a/@date" />
    j'obtiens le message d'erreur suivant : La référence à une variable ou un paramètre « a » doit correspondre à une liste de noeuds.

    j'ai essaye d'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	<xsl:variable name="a">
    		<xsl:copy-of select="document('a.xml')/rapport" />
    	</xsl:variable>
    mais sans resultat.

    Merci pour votre aide

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    de la façon dont tu définis ta variable "a", elle ne contient non pas une liste de noeuds mais un RTF (Result Tree Fragment), un fragment d'arbre, dont on ne peut pas faire grand chose. Il faut que tu utilises cette définition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:variable name="a" select="document('a.xml')/rapport"/>

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 46
    Points : 38
    Points
    38
    Par défaut
    Merci, beaucoup GrandFather
    Cela marche bien à présent.

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

Discussions similaires

  1. [DOM] Copier le contenu des fichiers XML d'un meme rep dans un seul fichier XML !
    Par amo-said dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 20/05/2011, 19h18
  2. Réponses: 0
    Dernier message: 20/05/2011, 17h48
  3. Réponses: 6
    Dernier message: 18/09/2009, 10h35
  4. Réponses: 2
    Dernier message: 18/09/2008, 15h25
  5. utilliser un autre fichier xml dans un xsl
    Par New Bee dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 14/04/2003, 11h55

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