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] parcours d'un fichier XML [Débutant(e)]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 18
    Points : 10
    Points
    10
    Par défaut [XSLT] parcours d'un fichier XML
    Bonjour , voilà je débute sur XSL, et j'ai des petits soucis pour faire ca :
    Soit le fichier XML suivant :

    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
    <A>
        <B0>
             <B attribute1='toto'>
                 <c attribute2='t1' attribute3='t1' attribute3='t1' />
                 <d attribute2='t2' attribute3='t2' attribute3='t2' />
                 <e attribute2='t3' attribute3='t3' attribute3='t3' />
             </B>
        <B0>
        <B1>
             <B attribute1='toto'>
                 <c attribute2='t1' attribute3='t1' attribute3='t1' />
                 <d attribute2='t2' attribute3='t2' attribute3='t2' />
                 <e attribute2='t3' attribute3='t3' attribute3='t3' />
             </B>
        <B1>
    </A>
    Je voudrais par exemple si j'ai entré B0 , créer des nœuds contenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <Res>
      <A B0 B c attribute1='toto' c attribute2='t1' attribute3='t1' attribute3='t1' />
      <A B0 B d attribute1='toto' d attribute2='t2' attribute3='t2' attribute3='t3' />
      <A B0 B d attribute1='toto' e attribute2='t3' attribute3='t3' attribute3='t2' />
    </Res>
    Merci d'avence pour toues aides

  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
    Citation Envoyé par kakid Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <Res>
      <A B0 B c attribute1='toto' c attribute2='t1' attribute3='t1' attribute3='t1' />
      <A B0 B d attribute1='toto' d attribute2='t2' attribute3='t2' attribute3='t3' />
      <A B0 B d attribute1='toto' e attribute2='t3' attribute3='t3' attribute3='t2' />
    </Res>
    Il n'est pas toléré en XML d'avoir un attribut sans valeur alors que, dans votre exemple, B0, B, c, d, et e seront interprétés comme tels... Est-ce bien ce que vous voulez ??
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    D'abord merci alain.couthures pour votre réponse.
    Au faite vous aviez raison, je m'étais trompé , je veux plutôt un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <Res>
      <chemin='A/B0/B/c' attribute1='toto' attribute2='t1' attribute3='t1' attribute4='t1' />
      <chemin='A/B0/B/d' attribute1='toto' d attribute2='t2' attribute3='t2' attribute4='t3' />
      <chemin='A/B0/B/e' attribute1='toto' e attribute2='t3' attribute3='t3' attribute4='t2' />
    </Res>
    On suppose que tout les attributs des noeuds père (antécédent) d'un noeud sont unique.

    Merci

  4. #4
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    a essayer
    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
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output 
      		encoding="ISO-8859-15"
      		method="xml"
      		indent="yes" />
     
    	<xsl:template match="/">
                    <Res>
    			<xsl:apply-templates select="//c | //d | //e"/>
                    </Res>
    	</xsl:template>
     
    	<xsl:template match="c | d | e">
                           <xsl:element name='chemin'>
    			<xsl:for-each select='./ancestor-or-self::*'>
                                   <xsl:for-each select='@*'>
                                   <xsl:attribute name = "." ><xsl:value-of select='.'/></xsl:attribute>  
                                    </xsl:for-each>
                            </xsl:for-each>
                           </xsl:element>
    	</xsl:template>
    </xsl:stylesheet>

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Merci à fraoustin , ton petit code marche bien .

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

Discussions similaires

  1. [DOM] Besoin d'optimiser le parcours d'un fichier XML
    Par stardeus dans le forum Format d'échange (XML, JSON...)
    Réponses: 19
    Dernier message: 08/04/2007, 17h04
  2. [XSLT] transfo d'un fichier XML en plusieurs fichiers XML
    Par doudou_rennes dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 28/11/2006, 12h01
  3. [XSLT] Comment lier un fichier XML et XSLT
    Par bitou dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 16/08/2006, 15h35
  4. XSLT traiter recursivement un fichier xml
    Par davelo dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 26/02/2006, 10h52

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