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] [xpath] reformater un document xml


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [xslt] [xpath] reformater un document xml
    Hello,

    j'ai deux elements (day et course) au même niveau, de cette facon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <timetable>
        <day date="Valeur"/>
        <course periode="Valeur">
                <name/>
                <teacher/>
                <location/>
        </course>
    </timetable>
    j'aimerai pouvoir transformer ce xml pour avoir l'élément course dans l'élément day de cette facon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <timetable>
        <day date="Valeur">
            <course periode="Valeur">
                <name/>
                <teacher/>
                <location/>
            </course>
        </day>
    </timetable>
    Ceci grâce à une xsl.
    Quelqu'un peut me dire comment??? Merci

  2. #2
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    De façon un peu bourrin, ie pas du tout générique, aux déclarations près :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <xsl:template match="/">
      <timetable>
        <date date="<xsl:value-of select="/timetable/day/@date"/>">
          <xsl:copy-of select="/timetable/course"/>
        </date>
      </timetable>
    </xsl:template>

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    OK ca marche avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        <xsl:template match="/">
            <timetable>
                <xsl:element name="day">
                    <xsl:attribute name="date">
                        <xsl:value-of select="/timetable/day/@date"/>
                    </xsl:attribute>
                    <xsl:copy-of select="/timetable/course"/>
                </xsl:element>
            </timetable>
        </xsl:template>
    Mais maintenant je passe au niveau supérieur car j'ai plusieurs éléments du même type de la sorte:
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <timetable>
        <day date="lun - 06.02.2006"/>
        <course period="matin">
            <name>congé</name>
            <teacher>none</teacher>
            <location>-</location>
        </course>
        <course period="apres">
            <location>509</location>
            <name>PAD</name>
            <teacher>DBI</teacher>
        </course>
        <day date="mar - 07.02.2006"/>
        <course period="matin">
            <name>congé</name>
            <teacher>none</teacher>
            <location>-</location>
        </course>
        <course period="apres">
            <location>509</location>
            <name>IntApp</name>
            <teacher>SRI</teacher>
        </course>
        <day date="mer - 08.02.2006"/>
        <course period="matin">
            <name>congé</name>
            <teacher>none</teacher>
            <location>-</location>
        </course>
        <course period="apres">
            <location>509</location>
            <name>IntApp</name>
            <teacher>SRI</teacher>
        </course>
    </timetable>
    Comment faire à ce niveau là? Merci

  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
    Points : 786
    Points
    786
    Par défaut
    s agit il a chaque fois de recopier le premier enfant venant apres course?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Pas exactement,
    il s'agit de copier les deux "course" et leurs enfants dans l'element "day" qui les précèdent.
    Pour un résultat :
    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
    28
     
    <?xml version="1.0" encoding="ISO-8859-1"?> 
    <timetable> 
        <day date="lun - 06.02.2006"> 
            <course period="matin"> 
                <name>congé</name> 
                <teacher>none</teacher> 
                <location>-</location> 
            </course> 
            <course period="apres"> 
                <location>509</location> 
                <name>PAD</name> 
                <teacher>DBI</teacher> 
            </course> 
        </day>
        <day date="mar - 07.02.2006"> 
            <course period="matin"> 
                <name>congé</name> 
                <teacher>none</teacher> 
                <location>-</location> 
            </course> 
            <course period="apres"> 
                <location>509</location> 
                <name>IntApp</name> 
                <teacher>SRI</teacher> 
            </course> 
        </day>
    </timetable>

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    YOUPIIIIIII
    J'ai trouvé en fouillant sur la toile...
    Voila ma solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <xsl:template match="/">
            <timetable>
                <xsl:for-each select="/timetable/day">
                    <xsl:element name="day">
                        <xsl:attribute name="date">
                            <xsl:value-of select="./@date"/>
                        </xsl:attribute>
                        <xsl:copy-of select="following::course[position()=1]"/>
                        <xsl:copy-of select="following::course[position()=2]"/>
                    </xsl:element>
                </xsl:for-each>
            </timetable>
        </xsl:template>
    Merci pour vos réponses.

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

Discussions similaires

  1. [XSLT]Comment copier un document xml avec xslt.
    Par maa dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 07/05/2009, 14h02
  2. [xslt][xpath]Utilisation des attributs XML
    Par Little_flower dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 15/05/2007, 12h42
  3. [DOM XML][XSLT] Création d'un document XML avec PHP
    Par ToxiZz dans le forum Bibliothèques et frameworks
    Réponses: 21
    Dernier message: 16/01/2006, 17h44
  4. [XSLT]select sur plusieur documents XML
    Par jesus144 dans le forum XMLRAD
    Réponses: 3
    Dernier message: 15/06/2005, 10h56

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