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 :

Défi : XML Dynamique et Table avec fusion des cellules


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Défi : XML Dynamique et Table avec fusion des cellules
    Bonjour,

    Ça fait deux jours que je m'acharne sur un problème qui est le suivant :

    J'ai un fichier XML dont les données sont complètement dynamiques, donc j'ai un nœud parent qui a N enfant, et chacun des N enfants peut avoir M enfants, ainsi de suite.

    Mon but est de placer les noms de ces nœuds dans un tableau, mais que la cellule ou il y a le nom d'un nœud parent fusionne les cellules correspondant à ses nœuds enfants (avec une vue des nœuds à l'horizontale).

    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,

    a priori un simple traitement récursif sur chaque niveau devrait suffire... Mais pour être bien sûr que l'on parle de la même chose, un petit échantillon du document XML et du résultat souhaité serait le bienvenu.

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Salut,

    Un exemple donc, un code XML quelcquonque :

    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
     
    <noeud1>
      <noeud2>54</noeud2>
      <noeud3>3</noeud3>
      <noeud3>0</noeud3>
      <noeud4>
        <noeud2>513</noeud2>
        <noeud5 />
      </noeud4>
      <noeud6>
        <noeud7>55675</noeud7>
        <noeud8>5675</noeud8>
        <noeud9>575</noeud9>
      </noeud6>
    </noeud1>
    Le code XSL que j'utilise actuellement qui me donne le tout avec une représentation sous forme de ul :

    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
    <?xml version="1.0"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <HTML>
    <STYLE>
    BODY {font-family:verdana;font-size:10pt}
    .attribute {color:darkgray}
    </STYLE>
    <BODY>
    <xsl:apply-templates select="/*"/>
    </BODY>
    </HTML>
    </xsl:template>
    <xsl:template match="*[node()]">
    <UL>
    <B><xsl:node-name /></B>
    <xsl:apply-templates select="@*"/>
    <xsl:apply-templates select="node()"/>
    </UL>
    </xsl:template>
    <xsl:template match="@*">
    <SPAN CLASS="attribute"><xsl:node-name />= <xsl:value-of select="."/></SPAN>
    </xsl:template>
    <xsl:template match="text()">
    <xsl:value-of select="."/>
    </xsl:template>
    </xsl:stylesheet>
    La représentation de ce XML que je souhaiterais, est pour chaque noeud :
    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
     
    <html>
    <body>
    <table>
        <table>
        <tr>
            <td rowspan="3">noeud parent</td>
            <td>noeud enfant</td>
        </tr>
        <tr>
            <td>noeud enfant</td>
        </tr>
        <tr>
            <td>noeud enfant</td>
        </tr>
    </table>
     
    </table>
     
    </body>
    </html>
    C'est plus clair ?

  4. #4
    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
    Citation Envoyé par SuperTracteur Voir le message
    C'est plus clair ?
    Ca l'aurait été si le résultat attendu tenait compte de l'exemple de XML que tu as donné... Je pense que tout le monde a compris quel était ton but, maintenant il faut que tu sois un peu plus spécifique sur le format des documents XML que tu traites, l'algorithme précis en étant dépendant.

Discussions similaires

  1. Table avec uniquement des des colonnes primary key
    Par BenoitM dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/03/2012, 12h58
  2. Réponses: 3
    Dernier message: 17/10/2010, 19h10
  3. générer un fichier xml depuis une table avec data integrator BO
    Par explorateur dans le forum Alimentation
    Réponses: 0
    Dernier message: 19/01/2010, 15h22
  4. Charger Fichiers XML dans une table avec SQL*LOADER
    Par devdev2003 dans le forum SQL
    Réponses: 2
    Dernier message: 14/01/2008, 11h40
  5. Copie de table avec modification des champs
    Par ordipaco dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/03/2007, 20h38

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