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] Méthode de traitement XSL (Regroupement d'informations) [Débutant(e)]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 75
    Points : 48
    Points
    48
    Par défaut [XSLT] Méthode de traitement XSL (Regroupement d'informations)
    Bonjour,

    Je dois transformer via XSL un document XML vers un autre document XML.

    Le doucment XML d'origine contient dans un tag une liste d'infos "PKT" et dans un autre tag des détails sur ces PKT, "PKTDetails" :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    <?xml version="1.0"?>
    <SO version="" id="">
    	<ListOfPKT>
    		<PKT>
    			<TableIndicator>1</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200601177046</OrderNumber>
    		</PKT>
    		<PKT>
    			<TableIndicator>1</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200601177060</OrderNumber>
    		</PKT>
    		<PKT>
    			<TableIndicator>1</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200603184070</OrderNumber>
    		</PKT>
    		<PKTDetails>
    			<TableIndicator>2</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200601177046</OrderNumber>
    			<ArticleNumber>0000002912</ArticleNumber>
    		</PKTDetails>
    		<PKTDetails>
    			<TableIndicator>2</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200601177060</OrderNumber>
    			<ArticleNumber>0000002913</ArticleNumber>
    		</PKTDetails>
    		<PKTDetails>
    			<TableIndicator>2</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200603184070</OrderNumber>
    			<ArticleNumber>0000048430</ArticleNumber>
    		</PKTDetails>
    		<PKTDetails>
    			<TableIndicator>2</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200603184070</OrderNumber>
    			<ArticleNumber>0000048430</ArticleNumber>
    		</PKTDetails>
    		<PKTDetails>
    			<TableIndicator>2</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200603184070</OrderNumber>
    			<ArticleNumber>0000048430</ArticleNumber>
    		</PKTDetails>
    		<PKTDetails>
    			<TableIndicator>2</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200603184070</OrderNumber>
    			<ArticleNumber>0000048430</ArticleNumber>
    		</PKTDetails>
    		<PKTDetails>
    			<TableIndicator>2</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200603184070</OrderNumber>
    			<ArticleNumber>0000264393</ArticleNumber>
    		</PKTDetails>
    		<PKTDetails>
    			<TableIndicator>2</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200603184070</OrderNumber>
    			<ArticleNumber>0000264393</ArticleNumber>
    		</PKTDetails>
    		<PKTDetails>
    			<TableIndicator>2</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200603184070</OrderNumber>
    			<ArticleNumber>0000264393</ArticleNumber>
    		</PKTDetails>
    		<PKTDetails>
    			<TableIndicator>2</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200603184070</OrderNumber>
    			<ArticleNumber>0000264393</ArticleNumber>
    		</PKTDetails>
    	</ListOfPKT>
    </SO>
    Mon problème est de regrouper dans mon nouveau document XML les PKT avec dans un tag enfant tous les PKTDetails lui correspondant. Le lien entre les deux se faisant sur le tag enfant commun aux deux : OrderNumber.
    Voici ce que je voudrais obtenir :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    <?xml version="1.0"?>
    <SO version="" id="">
    	<ListOfPKT>
    		<PKT>
    			<TableIndicator>1</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200601177046</OrderNumber>
    			<PKTDetails>
      			<TableIndicator>2</TableIndicator>
      			<LSP>FDL</LSP>
      			<OrderNumber>00000000200601177046</OrderNumber>
      			<ArticleNumber>0000002912</ArticleNumber>
      		</PKTDetails>
    		</PKT>
    		<PKT>
    			<TableIndicator>1</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200601177060</OrderNumber>
    			<PKTDetails>
      			<TableIndicator>2</TableIndicator>
      			<LSP>FDL</LSP>
      			<OrderNumber>00000000200601177060</OrderNumber>
      			<ArticleNumber>0000002913</ArticleNumber>
    		</PKTDetails>
    		</PKT>
    		<PKT>
    			<TableIndicator>1</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200603184070</OrderNumber>
      		<PKTDetails>
      			<TableIndicator>2</TableIndicator>
      			<LSP>FDL</LSP>
      			<OrderNumber>00000000200603184070</OrderNumber>
      			<ArticleNumber>0000048430</ArticleNumber>
      		</PKTDetails>
      		<PKTDetails>
      			<TableIndicator>2</TableIndicator>
      			<LSP>FDL</LSP>
      			<OrderNumber>00000000200603184070</OrderNumber>
      			<ArticleNumber>0000048430</ArticleNumber>
      		</PKTDetails>
      		<PKTDetails>
      			<TableIndicator>2</TableIndicator>
      			<LSP>FDL</LSP>
      			<OrderNumber>00000000200603184070</OrderNumber>
      			<ArticleNumber>0000048430</ArticleNumber>
      		</PKTDetails>
      		<PKTDetails>
      			<TableIndicator>2</TableIndicator>
      			<LSP>FDL</LSP>
      			<OrderNumber>00000000200603184070</OrderNumber>
      			<ArticleNumber>0000048430</ArticleNumber>
      		</PKTDetails>
      		<PKTDetails>
      			<TableIndicator>2</TableIndicator>
      			<LSP>FDL</LSP>
      			<OrderNumber>00000000200603184070</OrderNumber>
      			<ArticleNumber>0000264393</ArticleNumber>
      		</PKTDetails>
      		<PKTDetails>
      			<TableIndicator>2</TableIndicator>
      			<LSP>FDL</LSP>
      			<OrderNumber>00000000200603184070</OrderNumber>
      			<ArticleNumber>0000264393</ArticleNumber>
      		</PKTDetails>
      		<PKTDetails>
      			<TableIndicator>2</TableIndicator>
      			<LSP>FDL</LSP>
      			<OrderNumber>00000000200603184070</OrderNumber>
      			<ArticleNumber>0000264393</ArticleNumber>
      		</PKTDetails>
      		<PKTDetails>
      			<TableIndicator>2</TableIndicator>
      			<LSP>FDL</LSP>
      			<OrderNumber>00000000200603184070</OrderNumber>
      			<ArticleNumber>0000264393</ArticleNumber>
      		</PKTDetails>			
    		</PKT>
    	</ListOfPKT>
    </SO>
    Je ne vois pas du tout comment faire.
    Merci de m'aiguiller vers la bonne méthode.

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Ton second XML est mal formé (surtout au niveau des balises ouvertes/fermées)

    Tu pourrais le corriger pour qu'on puisse avoir quelque chose d'exploitable stp
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 75
    Points : 48
    Points
    48
    Par défaut
    Voila :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    <?xml version="1.0"?>
    <SO version="" id="">
    	<ListOfPKT>
    		<PKT>
    			<TableIndicator>1</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200601177046</OrderNumber>
    			<PKTDetails>
    				<TableIndicator>2</TableIndicator>
    				<LSP>FDL</LSP>
    				<OrderNumber>00000000200601177046</OrderNumber>
    				<ArticleNumber>0000002912</ArticleNumber>
    			</PKTDetails>
    		</PKT>
    		<PKT>
    			<TableIndicator>1</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200601177060</OrderNumber>
    			<PKTDetails>
    				<TableIndicator>2</TableIndicator>
    				<LSP>FDL</LSP>
    				<OrderNumber>00000000200601177060</OrderNumber>
    				<ArticleNumber>0000002913</ArticleNumber>
    			</PKTDetails>
    		</PKT>
    		<PKT>
    			<TableIndicator>1</TableIndicator>
    			<LSP>FDL</LSP>
    			<OrderNumber>00000000200603184070</OrderNumber>
    			<PKTDetails>
    				<TableIndicator>2</TableIndicator>
    				<LSP>FDL</LSP>
    				<OrderNumber>00000000200603184070</OrderNumber>
    				<ArticleNumber>0000048430</ArticleNumber>
    			</PKTDetails>
    			<PKTDetails>
    				<TableIndicator>2</TableIndicator>
    				<OrderNumber>00000000200603184070</OrderNumber>
    				<ArticleNumber>0000048430</ArticleNumber>
    			</PKTDetails>
    			<PKTDetails>
    				<TableIndicator>2</TableIndicator>
    				<LSP>FDL</LSP>
    				<OrderNumber>00000000200603184070</OrderNumber>
    				<ArticleNumber>0000048430</ArticleNumber>
    			</PKTDetails>
    			<PKTDetails>
    				<TableIndicator>2</TableIndicator>
    				<LSP>FDL</LSP>
    				<OrderNumber>00000000200603184070</OrderNumber>
    				<ArticleNumber>0000048430</ArticleNumber>
    			</PKTDetails>
    			<PKTDetails>
    				<TableIndicator>2</TableIndicator>
    				<LSP>FDL</LSP>
    				<OrderNumber>00000000200603184070</OrderNumber>
    				<ArticleNumber>0000264393</ArticleNumber>
    			</PKTDetails>
    			<PKTDetails>
    				<TableIndicator>2</TableIndicator>
    				<LSP>FDL</LSP>
    				<OrderNumber>00000000200603184070</OrderNumber>
    				<ArticleNumber>0000264393</ArticleNumber>
    			</PKTDetails>
    				<PKTDetails>
    				<TableIndicator>2</TableIndicator>
    				<LSP>FDL</LSP>
    				<OrderNumber>00000000200603184070</OrderNumber>
    				<ArticleNumber>0000264393</ArticleNumber>
    			</PKTDetails>
    			<PKTDetails>
    				<TableIndicator>2</TableIndicator>
    				<LSP>FDL</LSP>
    				<OrderNumber>00000000200603184070</OrderNumber>
    				<ArticleNumber>0000264393</ArticleNumber>
    			</PKTDetails>			
    		</PKT>
    	</ListOfPKT>
    </SO>

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Normalement la lecture de n'importe quel tuto XSLT te permet de faire ce que tu souhaites...

    as-tu lu les tutos sur XSLT ?
    http://haypo.developpez.com/tutoriel/xml/xslt/ et http://haypo.developpez.com/tutoriel...programmation/


    Parce que je trouve très étrange que tu n'arrives pas à le faire en ayant lu les tutos...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 75
    Points : 48
    Points
    48
    Par défaut
    En fait ce que je n'arrive pas à comprendre, c'est comment parcourir tout mes tag "OrderNumber" qui sont des enfants du tag PKT et aller les comparer aux tags "OrderNumber" enfants du tag PKTDetails.

  6. #6
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    un truc du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //PKTDetails[./OrderNumber=current()/OrderNumber]
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 75
    Points : 48
    Points
    48
    Par défaut
    Merci beaucoup de ton aide Swoög
    Ca marche parfaitement !

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

Discussions similaires

  1. [XSLT]Atteindre un node set dans xsl:param
    Par virgul dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 02/10/2006, 11h21
  2. [XSLT] Probleme de structure de fichier xsl
    Par ben23 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 17/07/2006, 10h46
  3. [XML] [XSLT] Lire du XML avec du XSL
    Par koudjo dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 27/06/2006, 20h51
  4. Réponses: 3
    Dernier message: 18/11/2005, 16h58

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