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

XML/XSL et SOAP Discussion :

problème affichage de contenu d'un noeud


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Par défaut problème affichage de contenu d'un noeud
    Bonjour,

    j'ai un XML avec une arborescence de ce type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      NOEUD1
          NOEUD2
              NOEUD3/
              TEXTE1...
              NOEUD3/
              TEXTE2...
         /NOEUD2
      /NOEUD1

    pour chaque NOEUD1, je fais un <xsl:apply-templates/>
    Ensuite dans le <xsl:template match="NOEUD2">,
    comment faire pour afficher le contenu du premier NOEUD3 puis le TEXTE1 puis le contenu du second NOEUD3 puis le TEXTE2
    (autrement dit en respectant l'ordre du XML)?


    J'ai essayé avec un appel à <xsl:template match="NOEUD3"> avec <xsl:apply-templates/> dans <xsl:template match="NOEUD2">
    mais comme prévu, le traitement du NOEUD3 se fait après l'affichage des différents textes.


    Voici à quoi ressemble mes templates :

    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
     
    <xsl:template match="NOEUD2">
      <br/>
      <xsl:value-of select="NOEUD2"/>
      <xsl:variable name="n" select="@N"/>
      <xsl:value-of select=".....($n))"/>
      <xsl:value-of select="$n"/>
      <xsl:apply-templates/>
    </xsl:template>
     
     
    <xsl:template match="NOEUD3">
      <xsl:value-of select="NOEUD3"/>
      <xsl:variable name="s" select="@S"/>
      <xsl:value-of select="substring(......, 1, $s)"/>
    </xsl:template>

  2. #2
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Par défaut
    est ce que TEXTE1 est fils de NOEUD3? ou est ce du texte

    si c est la valeur des text() des noeuds, il suffit d 'crire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="NOEUD3"/>
    le processeur XSL se débrouillera pour sortir tous les noeuds et sous noeuds text() dans l ordre

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Par défaut
    TEXTE1 est simplement du texte.

    Mon problème est qu'au final, j'aurais
    TEXTE1 TEXTE2 contenuDuPremier(NOEUD3) contenuDuSecond(NOEUD3)

  4. #4
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Par défaut
    réxpliconq bien la chose:
    donc la structure serait ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <NOEUD2>
      <NOEUD3>TEXTNOEUD3-1</NOEUD3>
      TEXTE1
      <NOEUD3>TEXTNOEUD3-2</NOEUD3>
      TEXTE2
    </NOEUD2>
    et donc tu voudrais
    TEXTNOEUD3-1
    TEXTE1
    TEXTNOEUD3-2
    TEXTE2

    c bien ça?

  5. #5
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Par défaut
    voila, tu as très bien compris

  6. #6
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Par défaut
    alors j 'écrierais ceci mais ce n est pas testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:template match="NOEUD2">
     <xsl:apply-templates select="node()"/>
    </xsl:template>
    <xsl:template match=text()><xsl:copy-of select="."/><xsl:template>
    <xsl:template match="*"><xsl:apply-templates select="node()"/></xsl:template>

  7. #7
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

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

    je dois sans doute avoir mal compris, mais la solution me semble triviale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsl:template name="NOEUD2">
      <xsl:apply-templates/>
    </xsl:template>
    <xsl:template name="NOEUD3">
    <!-- ton traitement spécifique des noeuds NOEUD3 -->
    </xsl:template>
    Le <xsl:apply-templates/> applique le template de tous les noeuds enfants de NOEUD2, dans l'ordre dans lequel ils apparaissent dans le XML ; parmi ceux-ci, les noeuds NOEUD3 sont gérés par un template spécifique, tandis que les noeuds textes sont traités par un template générique qui se contente de les envoyer en sortie.
    Citation Envoyé par luta
    réxpliconq bien la chose:
    C'est quel verbe à quel temps du subjonctif, ça ? Ou alors c'est du Klingon ?
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  8. #8
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Par défaut
    Citation Envoyé par GrandFather
    Bonjour,
    C'est quel verbe à quel temps du subjonctif, ça ? Ou alors c'est du Klingon ?
    non c le langage des "others" dans lost.
    Désolé, je devais être pressé....(méchant quand même)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <xsl:template name="NOEUD2">
      <xsl:apply-templates/>
    </xsl:template>
    oui sauf que dans ce cas là les noeuds text() ne sont pas traité si je ne m abuse

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/07/2010, 10h42
  2. Problème d'affichage du contenu de JPanel
    Par Mic75 dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 13/12/2007, 00h53
  3. [XSLT] Problème affichage d'un noeud
    Par Mselle dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/01/2007, 11h45
  4. probléme d'affichage du contenu d'un fichier
    Par developppez dans le forum C
    Réponses: 2
    Dernier message: 20/04/2006, 19h16
  5. [DIV] [FireFox] Problème affichage du contenu dans un div
    Par jibouze dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 24/11/2005, 11h06

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