Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1537 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  3 Noeuds , trier par un élément commun

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

3 Noeuds , trier par un élément commun

n°2045098
menakikou
Posté le 30-12-2010 à 11:17:40  profilanswer
 

Bonjour à tous,  
 
j'ai un petit soucis ! voici en résumé la structure de mon fichier XML .
 
<ActivityReports>
  <TechOpVisionReport>
    ........  
  </TechOpVisionReport>
  <BcfVisionReport>
  ...................
   </BcfVisionReport>
  <BcfSessionVisionReport>
   ...........
  </BcfSessionVisionReport>
</ActivityReports>
 
Dans chacun des fils , possède une balise de ce type : <runNumber>2</runNumber>
 
Je voudrais trier mon affichage via ce runNumber.
 
Dans mon fichier XSL , j'ai mis un peu partout <xsl:sort select="runNumber" data-type="number" /> mais ca ne fonctionne pas !!
 
Quelqu'un aurais t il une idée ?!!!!!!
 
Merci d'avance

mood
Publicité
Posté le 30-12-2010 à 11:17:40  profilanswer
 

n°2045148
gilou
Modérateur
Modzilla
Posté le 30-12-2010 à 14:18:20  profilanswer
 

Ben si tu montres pas le code, qu'on voie le xsl:for-each ou le xsl:apply-template englobant, on risque pas de répondre, vu la pénurie de boules de cristal fiables...
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2045151
menakikou
Posté le 30-12-2010 à 14:35:50  profilanswer
 

Voici le Code du fichier XSL c'est un peu long :s !!
 

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>  
  2. <!--fonction qui permet d'afficher la date et l'heure d'execution-->
  3. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
  4.                 xmlns:datetime="http://exslt.org/dates-and-times"
  5.                 exclude-result-prefixes="datetime">
  6.                  
  7.       <!--appel de common_tools et format du fichier de sorti avec non retour la ligne-->
  8.       <xsl:import href="common_tools.xsl"/>
  9.    <xsl:output method = "xml" indent="no"/>
  10.    
  11.      <xsl:key name="Bcf" match="//Bcf" use="bcfId" />
  12.      <xsl:key name="TotalBcfBleue" match="//TotalBcfBleue" use="bcfId" />
  13.      <xsl:key name="AllBcf" match="//AllBcf" use="bcfId" />
  14.      
  15.   <!--appel du noeud principal-->    
  16. <xsl:template match = "ActivityReports">  
  17.      <pages><nb_ligne_page>42</nb_ligne_page><!--42 lignes par page-->
  18.        <xsl:apply-templates select="TechOpVisionReport" >
  19.                   <xsl:with-param name="ref" select="TechOpVisionReport"/>
  20.                 </xsl:apply-templates>  
  21.                 <xsl:apply-templates select="BcfVisionReport" >
  22.                   <xsl:with-param name="ref2" select="BcfVisionReport"/>
  23.               </xsl:apply-templates>  
  24.               <xsl:apply-templates select="BcfSessionVisionReport" >
  25.                   <xsl:with-param name="ref3" select="BcfSessionVisionReport"/>
  26.               </xsl:apply-templates>
  27.             </pages>  
  28. </xsl:template>
  29.  
  30.  
  31. <!-- vision Operateur technique -->
  32.  <xsl:template match = "TechOpVisionReport"><xsl:param name="ref"/>
  33.  <count>
  34. <xsl:for-each select="../TechOpVisionReport" ><xsl:for-each select="TechOpVisionDetail" ><page><bloc-etat>                                          <!--formatage de la date le jour d execution pour avoir jj/mm/aaaa -->
  35. <ligne><xsl:text>1ETAT: CVBCOF81                       ACTIVITE OUTGOING              </xsl:text><xsl:value-of select = "substring(datetime:dateTime(),9,2)"/>/<xsl:value-of select = "substring(datetime:dateTime(),6,2)"/>/<xsl:value-of select = "substring(datetime:dateTime(),0,5)"/><xsl:text>                                                      </xsl:text></ligne>
  36. <ligne><xsl:text> GROUPEMENT CARTE BLEUE         DES TRAITEMENTS EDIT PACKAGE         </xsl:text><xsl:value-of select = "substring(datetime:dateTime(),12,8)"/><xsl:text>                                                        </xsl:text></ligne><!--formatage de l heure le jour d execution pour avoir hh:mn:ss -->
  37. <ligne><xsl:text> REF.:</xsl:text><xsl:value-of select = "../reference"/><xsl:text>          VISION OPERATEUR TECHNIQUE          PAGE :   </xsl:text><page-nombre>1</page-nombre><xsl:text>                                                      </xsl:text></ligne>
  38. <ligne><xsl:text>                                    JOURNEE DU </xsl:text><xsl:value-of select = "substring(../../date,9,2)"/>/<xsl:value-of select = "substring(../../date,6,2)"/>/<xsl:value-of select = "substring(../../date,0,5)"/><xsl:text>                                                                            </xsl:text></ligne>
  39. <ligne><xsl:text>0CIB : </xsl:text><xsl:value-of select = "cib"/><xsl:text>                                                                                                                        </xsl:text></ligne>
  40. </bloc-etat><xsl:for-each select="Session" ><xsl:sort select="runNumber" data-type="number" /><bloc-seance>
  41. <ligne><xsl:text>0SEANCE</xsl:text><xsl:call-template name="formatage_00_complete_avec_espace"><xsl:with-param name="int_nombre" select="2" /><xsl:with-param name="str_valeur" select="runNumber" /></xsl:call-template>  CIX-ID<xsl:value-of select = "format-number( (id) , '000000', 'euro')"/><xsl:if test=" type = 'SECONDAIRE'"><xsl:text>   </xsl:text></xsl:if><xsl:if test=" type = 'PRIMAIRE'"><xsl:text>    </xsl:text></xsl:if><xsl:value-of select = "type"/><xsl:call-template name="Ajout_espace"><xsl:with-param name="int_debut" select="string-length(type)" /><xsl:with-param name="int_fin" select="103" /></xsl:call-template><xsl:if test=" type = 'SECONDAIRE'"><xsl:text>  </xsl:text></xsl:if><xsl:if test=" type = 'PRIMAIRE'"><xsl:text> </xsl:text></xsl:if><xsl:text></xsl:text></ligne>
  42. <ligne><xsl:text> ==============================================================================                                                      </xsl:text></ligne></bloc-seance><xsl:for-each select="TechOp" ><bloc-corps>
  43. <ligne><xsl:text>                                     ACCEPTES        ACCEPTES         REJETES                                                        </xsl:text></ligne>
  44. <ligne><xsl:text> O.T. : </xsl:text><xsl:value-of select = "id"/><xsl:call-template name="Ajout_espace"><xsl:with-param name="int_debut" select="string-length(id)" /><xsl:with-param name="int_fin" select="12" /></xsl:call-template><xsl:text>                PAR CIBLE     EDIT PACKAGE    EDIT PACKAGE                                                      </xsl:text></ligne><xsl:for-each select="Remittance" >
  45. <ligne><xsl:text>0  REMISE :</xsl:text><xsl:call-template name="formatage_xxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="8" /><xsl:with-param name="str_valeur" select="remittanceId" /></xsl:call-template><xsl:text> (</xsl:text><xsl:call-template name="formatage_xxx_complete_avec_zero"><xsl:with-param name="int_nombre" select="7" /><xsl:with-param name="str_valeur" select="id" /></xsl:call-template><xsl:text> )</xsl:text><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="14" /><xsl:with-param name="str_valeur" select="nbAcceptCIBLE" /></xsl:call-template><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="14" /><xsl:with-param name="str_valeur" select="nbAcceptEP" /></xsl:call-template><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="13" /><xsl:with-param name="str_valeur" select="nbRejectEP" /></xsl:call-template><xsl:text>                                                          </xsl:text></ligne>
  46. <ligne><xsl:text>        DU </xsl:text><xsl:value-of select = "substring(date,9,2)"/>/<xsl:value-of select = "substring(date,6,2)"/>/<xsl:value-of select = "substring(date,0,5)"/> A : <xsl:value-of select = "substring(time,0,9)"/><xsl:text>                                                                                                   </xsl:text></ligne>
  47. <ligne><xsl:text>        STATUT : </xsl:text><xsl:value-of select = "status"/><xsl:text>                                                                                                    </xsl:text></ligne>
  48. </xsl:for-each>
  49. <ligne><xsl:text>0------------------------------------------------------------------------------                                                      </xsl:text></ligne></bloc-corps></xsl:for-each></xsl:for-each></page></xsl:for-each>
  50. <xsl:if test="not(TechOpVisionDetail)"><page><bloc-etat>                                          <!--formatage de la date le jour d execution pour avoir jj/mm/aaaa -->
  51. <ligne><xsl:text>1ETAT: CVBCOF81                       ACTIVITE OUTGOING              </xsl:text><xsl:value-of select = "substring(datetime:dateTime(),9,2)"/>/<xsl:value-of select = "substring(datetime:dateTime(),6,2)"/>/<xsl:value-of select = "substring(datetime:dateTime(),0,5)"/><xsl:text>                                                      </xsl:text></ligne>
  52. <ligne><xsl:text> GROUPEMENT CARTE BLEUE         DES TRAITEMENTS EDIT PACKAGE         </xsl:text><xsl:value-of select = "substring(datetime:dateTime(),12,8)"/><xsl:text>                                                        </xsl:text></ligne><!--formatage de l heure le jour d execution pour avoir hh:mn:ss -->
  53. <ligne><xsl:text> REF.:</xsl:text><xsl:value-of select = "reference"/><xsl:text>          VISION OPERATEUR TECHNIQUE          PAGE :   </xsl:text><page-nombre>1</page-nombre><xsl:text>                                                      </xsl:text></ligne>
  54. <ligne><xsl:text>                                    JOURNEE DU </xsl:text><xsl:value-of select = "substring(../date,9,2)"/>/<xsl:value-of select = "substring(../date,6,2)"/>/<xsl:value-of select = "substring(../date,0,5)"/><xsl:text>                                                                            </xsl:text></ligne>
  55. <ligne><xsl:text>0CIB :       </xsl:text><xsl:text>                                                                                                                        </xsl:text></ligne>
  56. </bloc-etat><bloc-corps>
  57. <ligne><xsl:text>0                                                           ETAT VIDE : AUCUN RESULTAT                                               </xsl:text></ligne></bloc-corps></page></xsl:if>
  58. </xsl:for-each></count></xsl:template>
  59. <!-- vision BCF -->
  60. <xsl:template match = "BcfVisionReport">
  61. <xsl:param name="ref2"/>
  62. <count><xsl:for-each select="../BcfVisionReport" ><xsl:for-each select="BcfVisionDetail" ><page><bloc-etat>
  63. <ligne><xsl:text>1ETAT: CVBCOF82                       ACTIVITE OUTGOING              </xsl:text><xsl:value-of select = "substring(datetime:dateTime(),9,2)"/>/<xsl:value-of select = "substring(datetime:dateTime(),6,2)"/>/<xsl:value-of select = "substring(datetime:dateTime(),0,5)"/><xsl:text>                                                      </xsl:text></ligne><!--formatage de la date le jour d execution pour avoir jj/mm/aaaa -->
  64. <ligne><xsl:text> GROUPEMENT CARTE BLEUE         DES TRAITEMENTS EDIT PACKAGE         </xsl:text><xsl:value-of select = "substring(datetime:dateTime(),12,8)"/><xsl:text>                                                        </xsl:text></ligne><!--formatage de l heure le jour d execution pour avoir hh:mn:ss -->
  65. <ligne><xsl:text> REF.:</xsl:text><xsl:value-of select = "../reference"/><xsl:text>                   VISION BCF                 PAGE :   </xsl:text><page-nombre>1</page-nombre><xsl:text>                                                      </xsl:text></ligne>
  66. <ligne><xsl:text>                                    JOURNEE DU </xsl:text><xsl:value-of select = "substring(../../date,9,2)"/>/<xsl:value-of select = "substring(../../date,6,2)"/>/<xsl:value-of select = "substring(../../date,0,5)"/><xsl:text>                                                                            </xsl:text></ligne>
  67. <ligne><xsl:text> CIB : </xsl:text><xsl:value-of select = "cib"/><xsl:text>                                                                                                                        </xsl:text></ligne>
  68. <ligne><xsl:text>                                                                                                                                     </xsl:text></ligne>
  69. <ligne><xsl:text> ------------------------------------------------------------------------------                                                      </xsl:text></ligne></bloc-etat><xsl:for-each select="Bcf" ><bloc-corps>
  70. <ligne><xsl:text>                                                                    ACCEPTES                                                         </xsl:text></ligne>
  71. <ligne><xsl:text> BCF. : </xsl:text><xsl:value-of select = "bcfId"/><xsl:text>    </xsl:text><xsl:value-of select = "bcfName"/><xsl:call-template name="Ajout_espace"><xsl:with-param name="int_debut" select="string-length(bcfName)" /><xsl:with-param name="int_fin" select="48" /></xsl:call-template>PAR CIBLE<xsl:text>                                                         </xsl:text></ligne>
  72. <ligne><xsl:text>0   TC05 : FACTURE PAIEMENT         NOMBRE :</xsl:text><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="30" /><xsl:with-param name="str_valeur" select="nbTC05" /></xsl:call-template><xsl:text>                                                          </xsl:text></ligne>
  73. <ligne><xsl:text>0   TC07 : FACTURE RETRAIT          NOMBRE :</xsl:text><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="30" /><xsl:with-param name="str_valeur" select="nbTC07" /></xsl:call-template><xsl:text>                                                          </xsl:text></ligne>
  74. <ligne><xsl:text>0   CUMUL DES AUTRES TRANSACTIONS   NOMBRE :</xsl:text><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="30" /><xsl:with-param name="str_valeur" select="nbOtherTC" /></xsl:call-template><xsl:text>                                                          </xsl:text></ligne>
  75. <ligne><xsl:text>0     CUMUL TOUTES TRANSACTIONS     NOMBRE :</xsl:text><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="30" /><xsl:with-param name="str_valeur" select="nbAllTC" /></xsl:call-template><xsl:text>                                                          </xsl:text></ligne>
  76. <ligne><xsl:text> ------------------------------------------------------------------------------                                                      </xsl:text></ligne></bloc-corps></xsl:for-each><bloc-corps><xsl:for-each select="TotalBcfBleue" >
  77. <ligne><xsl:text>        TOTAL BCF BLEUE             NOMBRE :</xsl:text><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="30" /><xsl:with-param name="str_valeur" select="nbAllTC" /></xsl:call-template><xsl:text>                                                          </xsl:text></ligne>
  78. <ligne><xsl:text> ------------------------------------------------------------------------------                                                      </xsl:text></ligne>
  79. </xsl:for-each><xsl:for-each select="AllBcf" >
  80. <ligne><xsl:text>                                                                    ACCEPTES                                                         </xsl:text></ligne>
  81. <ligne><xsl:text> TOTAL TOUTES BCF                                                  PAR CIBLE                                                         </xsl:text></ligne>
  82. <ligne><xsl:text>0   TC05 : FACTURE PAIEMENT         NOMBRE :</xsl:text><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="30" /><xsl:with-param name="str_valeur" select="nbTC05" /></xsl:call-template><xsl:text>                                                          </xsl:text></ligne>
  83. <ligne><xsl:text>0   TC07 : FACTURE RETRAIT          NOMBRE :</xsl:text><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="30" /><xsl:with-param name="str_valeur" select="nbTC07" /></xsl:call-template><xsl:text>                                                          </xsl:text></ligne>
  84. <ligne><xsl:text>0   CUMUL DES AUTRES TRANSACTIONS   NOMBRE :</xsl:text><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="30" /><xsl:with-param name="str_valeur" select="nbOtherTC" /></xsl:call-template><xsl:text>                                                          </xsl:text></ligne>
  85. <ligne><xsl:text>                                                                                                                                     </xsl:text></ligne>
  86. <ligne><xsl:text> ==============================================================================                                                      </xsl:text></ligne>
  87. <ligne><xsl:text>      CUMUL TOUTES BCF              NOMBRE :</xsl:text><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="30" /><xsl:with-param name="str_valeur" select="nbAllTC" /></xsl:call-template><xsl:text>                                                          </xsl:text></ligne>
  88. <ligne><xsl:text> ==============================================================================                                                      </xsl:text></ligne></xsl:for-each></bloc-corps></page>
  89. </xsl:for-each>
  90. <xsl:if test="not(BcfVisionDetail)"><page><bloc-etat>
  91. <ligne><xsl:text>1ETAT: CVBCOF82                       ACTIVITE OUTGOING              </xsl:text><xsl:value-of select = "substring(datetime:dateTime(),9,2)"/>/<xsl:value-of select = "substring(datetime:dateTime(),6,2)"/>/<xsl:value-of select = "substring(datetime:dateTime(),0,5)"/><xsl:text>                                                      </xsl:text></ligne><!--formatage de la date le jour d execution pour avoir jj/mm/aaaa -->
  92. <ligne><xsl:text> GROUPEMENT CARTE BLEUE         DES TRAITEMENTS EDIT PACKAGE         </xsl:text><xsl:value-of select = "substring(datetime:dateTime(),12,8)"/><xsl:text>                                                        </xsl:text></ligne><!--formatage de l heure le jour d execution pour avoir hh:mn:ss -->
  93. <ligne><xsl:text> REF.:</xsl:text><xsl:value-of select = "reference"/><xsl:text>                   VISION BCF                 PAGE :   </xsl:text><page-nombre>1</page-nombre><xsl:text>                                                      </xsl:text></ligne>
  94. <ligne><xsl:text>                                    JOURNEE DU </xsl:text><xsl:value-of select = "substring(../date,9,2)"/>/<xsl:value-of select = "substring(../date,6,2)"/>/<xsl:value-of select = "substring(../date,0,5)"/><xsl:text>                                                                            </xsl:text></ligne>
  95. <ligne><xsl:text> CIB :       </xsl:text><xsl:text>                                                                                                                        </xsl:text></ligne>
  96. <ligne><xsl:text>                                                                                                                                     </xsl:text></ligne>
  97. <ligne><xsl:text> ------------------------------------------------------------------------------                                                      </xsl:text></ligne></bloc-etat><bloc-corps>
  98. <ligne><xsl:text>0                                                           ETAT VIDE : AUCUN RESULTAT                                               </xsl:text></ligne></bloc-corps></page></xsl:if>
  99. </xsl:for-each>
  100. </count></xsl:template>
  101. <!-- vision BCF par Session -->
  102. <xsl:template match = "BcfSessionVisionReport">
  103. <xsl:param name="ref3"/>
  104. <count><xsl:variable name="dayDate3" select="datetime:dateTime()" />
  105. <xsl:for-each select="../BcfSessionVisionReport" >
  106. <xsl:for-each select="BcfSessionVisionDetail" ><xsl:for-each select="Session" ><xsl:sort select="runNumber" data-type="number"/><page><bloc-etat>
  107. <ligne><xsl:text>1ETAT:  CVBCOF83                      ACTIVITE OUTGOING              </xsl:text><xsl:value-of select = "substring(datetime:dateTime(),9,2)"/>/<xsl:value-of select = "substring(datetime:dateTime(),6,2)"/>/<xsl:value-of select = "substring(datetime:dateTime(),0,5)"/><xsl:text>                                                      </xsl:text></ligne><!--formatage de la date le jour d execution pour avoir jj/mm/aaaa -->
  108. <ligne><xsl:text> GROUPEMENT CARTE BLEUE         DES TRAITEMENTS EDIT PACKAGE         </xsl:text><xsl:value-of select = "substring(datetime:dateTime(),12,8)"/><xsl:text>                                                        </xsl:text></ligne><!--formatage de l heure le jour d execution pour avoir hh:mn:ss -->
  109. <ligne><xsl:text> REF.:</xsl:text><xsl:value-of select = "../../reference"/><xsl:text>                   VISION BCF                 PAGE :   </xsl:text><page-nombre>1</page-nombre><xsl:text>                                                      </xsl:text></ligne>
  110. <ligne><xsl:text>                                         PAR SEANCE                                                                                  </xsl:text></ligne>
  111. <ligne><xsl:text> CIB : </xsl:text><xsl:value-of select = "../cib"/><xsl:text>                       </xsl:text>JOURNEE DU <xsl:value-of select = "substring(../../../date,9,2)"/>/<xsl:value-of select = "substring(../../../date,6,2)"/>/<xsl:value-of select = "substring(../../../date,0,5)"/><xsl:text>                                                                            </xsl:text></ligne>
  112. <ligne><xsl:text>0SEANCE</xsl:text><xsl:call-template name="formatage_00_complete_avec_espace"><xsl:with-param name="int_nombre" select="2" /><xsl:with-param name="str_valeur" select="runNumber" /></xsl:call-template>  CIX-ID<xsl:value-of select = "format-number( (id) , '000000', 'euro')"/><xsl:text>     </xsl:text><xsl:value-of select = "type"/><xsl:call-template name="Ajout_espace"><xsl:with-param name="int_debut" select="string-length(type)" /><xsl:with-param name="int_fin" select="102" /></xsl:call-template><xsl:if test ="type ='PRIMAIRE'"><xsl:text></xsl:text></xsl:if><xsl:text> </xsl:text></ligne>
  113. <ligne><xsl:text> ------------------------------------------------------------------------------                                                      </xsl:text></ligne></bloc-etat>
  114. <xsl:for-each select="Bcf[bcfId]">
  115.  <xsl:sort select="bcfId"/>
  116.  <xsl:variable name="bcfId" select="bcfId"/>
  117.  <xsl:variable name="rejected" select="../Bcf[bcfId=$bcfId][activity='REJECTED_EP']"/>
  118.  <xsl:if test="not(preceding-sibling::Bcf[bcfId=$bcfId])"><bloc-corps>
  119. <ligne><xsl:text>                                                     ACCEPTES         REJETES                                                        </xsl:text></ligne>
  120. <ligne><xsl:text> BCF. : </xsl:text><xsl:value-of select = "bcfId"/><xsl:text>    </xsl:text><xsl:value-of select = "bcfName"/><xsl:call-template name="Ajout_espace"><xsl:with-param name="int_debut" select="string-length(bcfName)" /><xsl:with-param name="int_fin" select="25" /></xsl:call-template><xsl:text>       EDIT PACKAGE    EDIT PACKAGE                                                      </xsl:text></ligne>
  121. <ligne><xsl:text>0   TC05 : FACTURE PAIEMENT         NOMBRE :</xsl:text><xsl:if test = "activity = 'ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="nbTC05" /></xsl:call-template></xsl:if><xsl:if test = "activity!='ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:if test = "$rejected"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="$rejected/nbTC05" /></xsl:call-template></xsl:if><xsl:if test = "not($rejected)"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:text>                                                       </xsl:text></ligne>
  122. <ligne><xsl:text>0   TC07 : FACTURE RETRAIT          NOMBRE :</xsl:text><xsl:if test = "activity = 'ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="nbTC07" /></xsl:call-template></xsl:if><xsl:if test = "activity!='ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:if test = "$rejected"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="$rejected/nbTC07" /></xsl:call-template></xsl:if><xsl:if test = "not($rejected)"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:text>                                                       </xsl:text></ligne>
  123. <ligne><xsl:text>0   CUMUL DES AUTRES TRANSACTIONS   NOMBRE :</xsl:text><xsl:if test = "activity = 'ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="nbOtherTC" /></xsl:call-template></xsl:if><xsl:if test = "activity!='ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:if test = "$rejected"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="$rejected/nbOtherTC" /></xsl:call-template></xsl:if><xsl:if test = "not($rejected)"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:text>                                                       </xsl:text></ligne>
  124. <ligne><xsl:text>0     CUMUL TOUTES TRANSACTIONS     NOMBRE :</xsl:text><xsl:if test = "activity = 'ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="nbAllTC" /></xsl:call-template></xsl:if><xsl:if test = "activity!='ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:if test = "$rejected"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="$rejected/nbAllTC" /></xsl:call-template></xsl:if><xsl:if test = "not($rejected)"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:text>                                                       </xsl:text></ligne>
  125. <ligne><xsl:text> ------------------------------------------------------------------------------                                                      </xsl:text></ligne>
  126. </bloc-corps></xsl:if>
  127. </xsl:for-each>
  128. <bloc-corps><xsl:for-each select="TotalBcfBleue[bcfId]">
  129. <xsl:sort select="bcfId"/>
  130. <xsl:variable name="bcfId" select="bcfId"/>
  131. <xsl:variable name="rejected" select="../TotalBcfBleue[bcfId=$bcfId][activity='REJECTED_EP']"/>
  132. <xsl:if test="not(preceding-sibling::TotalBcfBleue[bcfId=$bcfId])">
  133. <ligne><xsl:text>        TOTAL BCF BLEUE             NOMBRE :</xsl:text><xsl:if test = "activity = 'ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="nbAllTC" /></xsl:call-template></xsl:if><xsl:if test = "activity!='ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:if test = "$rejected"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="$rejected/nbAllTC" /></xsl:call-template></xsl:if><xsl:if test = "not($rejected)"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:text>                                                       </xsl:text></ligne>          
  134. <ligne><xsl:text> ------------------------------------------------------------------------------                                                      </xsl:text></ligne>
  135.  </xsl:if>
  136. </xsl:for-each>
  137. <xsl:for-each select="AllBcf[bcfId]" >
  138. <xsl:sort select="bcfId"/>
  139. <xsl:variable name="bcfId" select="bcfId"/>
  140. <xsl:variable name="rejected" select="../AllBcf[bcfId=$bcfId][activity='REJECTED_EP']"/>
  141. <xsl:if test="not(preceding-sibling::AllBcf[bcfId=$bcfId])">
  142. <ligne><xsl:text>                                                     ACCEPTES         REJETES                                                        </xsl:text></ligne>
  143. <ligne><xsl:text> TOTAL TOUTES BCF                                  EDIT PACKAGE    EDIT PACKAGE                                                      </xsl:text></ligne>
  144. <ligne><xsl:text>0   TC05 : FACTURE PAIEMENT         NOMBRE :</xsl:text><xsl:if test = "activity = 'ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="nbTC05" /></xsl:call-template></xsl:if><xsl:if test = "activity!='ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:if test = "$rejected"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="$rejected/nbTC05" /></xsl:call-template></xsl:if><xsl:if test = "not($rejected)"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:text>                                                       </xsl:text></ligne>
  145. <ligne><xsl:text>0   TC07 : FACTURE RETRAIT          NOMBRE :</xsl:text><xsl:if test = "activity = 'ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="nbTC07" /></xsl:call-template></xsl:if><xsl:if test = "activity!='ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:if test = "$rejected"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="$rejected/nbTC07" /></xsl:call-template></xsl:if><xsl:if test = "not($rejected)"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:text>                                                       </xsl:text></ligne>
  146. <ligne><xsl:text>0   CUMUL DES AUTRES TRANSACTIONS   NOMBRE :</xsl:text><xsl:if test = "activity = 'ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="nbOtherTC" /></xsl:call-template></xsl:if><xsl:if test = "activity!='ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:if test = "$rejected"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="$rejected/nbOtherTC" /></xsl:call-template></xsl:if><xsl:if test = "not($rejected)"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:text>                                                       </xsl:text></ligne>
  147. <ligne><xsl:text>                                                                                                                                     </xsl:text></ligne>
  148. <ligne><xsl:text> ==============================================================================                                                      </xsl:text></ligne>
  149. <ligne><xsl:text>      CUMUL TOUTES BCF              NOMBRE :</xsl:text><xsl:if test = "activity = 'ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="nbAllTC" /></xsl:call-template></xsl:if><xsl:if test = "activity!='ACCEPTED_EP'"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="17" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:if test = "$rejected"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="$rejected/nbAllTC" /></xsl:call-template></xsl:if><xsl:if test = "not($rejected)"><xsl:call-template name="formatage_xpointxxx_complete_avec_espace"><xsl:with-param name="int_nombre" select="15" /><xsl:with-param name="str_valeur" select="0" /></xsl:call-template></xsl:if><xsl:text>                                                       </xsl:text></ligne>
  150. <ligne><xsl:text> ==============================================================================                                                      </xsl:text></ligne></xsl:if></xsl:for-each></bloc-corps></page></xsl:for-each></xsl:for-each>
  151. <xsl:if test="not(BcfSessionVisionDetail)"><page><bloc-etat>
  152. <ligne><xsl:text>1ETAT:  CVBCOF83                      ACTIVITE OUTGOING              </xsl:text><xsl:value-of select = "substring(datetime:dateTime(),9,2)"/>/<xsl:value-of select = "substring(datetime:dateTime(),6,2)"/>/<xsl:value-of select = "substring(datetime:dateTime(),0,5)"/><xsl:text>                                                      </xsl:text></ligne><!--formatage de la date le jour d execution pour avoir jj/mm/aaaa -->
  153. <ligne><xsl:text> GROUPEMENT CARTE BLEUE         DES TRAITEMENTS EDIT PACKAGE         </xsl:text><xsl:value-of select = "substring(datetime:dateTime(),12,8)"/><xsl:text>                                                        </xsl:text></ligne><!--formatage de l heure le jour d execution pour avoir hh:mn:ss -->
  154. <ligne><xsl:text> REF.:</xsl:text><xsl:value-of select = "reference"/><xsl:text>                   VISION BCF                 PAGE :   </xsl:text><page-nombre>1</page-nombre><xsl:text>                                                      </xsl:text></ligne>
  155. <ligne><xsl:text>                                         PAR SEANCE                                                                                  </xsl:text></ligne>
  156. <ligne><xsl:text> CIB :       </xsl:text><xsl:text>                       </xsl:text>JOURNEE DU <xsl:value-of select = "substring(../date,9,2)"/>/<xsl:value-of select = "substring(../date,6,2)"/>/<xsl:value-of select = "substring(../date,0,5)"/><xsl:text>                                                                            </xsl:text></ligne>
  157. <ligne><xsl:text>0SEANCE</xsl:text> 00  CIX-ID<xsl:value-of select = "format-number( (0) , '000000', 'euro')"/><xsl:text>     </xsl:text><xsl:value-of select = "type"/><xsl:call-template name="Ajout_espace"><xsl:with-param name="int_debut" select="string-length(type)" /><xsl:with-param name="int_fin" select="102" /></xsl:call-template><xsl:if test ="type ='PRIMAIRE'"><xsl:text></xsl:text></xsl:if><xsl:text> </xsl:text></ligne>
  158. <ligne><xsl:text> ------------------------------------------------------------------------------                                                      </xsl:text></ligne></bloc-etat><bloc-corps>
  159. <ligne><xsl:text>0                                                           ETAT VIDE : AUCUN RESULTAT                                               </xsl:text></ligne></bloc-corps></page></xsl:if>
  160. </xsl:for-each>
  161. </count></xsl:template>
  162. </xsl:stylesheet>


Message édité par gilou le 30-12-2010 à 16:47:07
n°2045152
menakikou
Posté le 30-12-2010 à 14:36:30  profilanswer
 

Il y a des fonctions qui sont appelés dans un autre fichier XSL commumtools.
 

n°2045215
gilou
Modérateur
Modzilla
Posté le 30-12-2010 à 17:49:11  profilanswer
 

Ton exemple est un poil trop complexe pour que je réponde précisément, mais si tu regardes quelque chose comme:
Source réduite

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <?xml-stylesheet href="test.xsl" type="text/xsl"?>
  3. <ActivityReports>
  4.  <TechOpVisionReport>
  5.    <runNumber>2</runNumber>
  6.  </TechOpVisionReport>
  7.  <BcfVisionReport>
  8.  <runNumber>1</runNumber>
  9.   </BcfVisionReport>
  10.  <BcfSessionVisionReport>
  11.   <runNumber>3</runNumber>
  12.  </BcfSessionVisionReport>
  13. </ActivityReports>


Feuille de style basique qui fait quasi juste le tri:

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <xsl:output method="xml"/>
  4.  <xsl:template match = "ActivityReports">
  5.    <xsl:for-each select="./*" >
  6.      <xsl:sort select="runNumber" data-type="number" />
  7.      <xsl:copy>
  8.     <xsl:apply-templates select="@*|node()"/>
  9.      </xsl:copy>
  10.    </xsl:for-each>
  11.  </xsl:template>
  12. </xsl:stylesheet>


Tu obtiens en sortie (ça montre le tri, même si le formatage est un poil laid vu la feuille xsl à la bite et au couteau) (processé par Saxon)

Code :
  1. <?xml version="1.0" encoding="UTF-8"?><BcfVisionReport>
  2.  1
  3.   </BcfVisionReport><TechOpVisionReport>
  4.    2
  5.  </TechOpVisionReport><BcfSessionVisionReport>
  6.   3
  7.  </BcfSessionVisionReport>


A+,


Message édité par gilou le 30-12-2010 à 17:59:37

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  3 Noeuds , trier par un élément commun

 

Sujets relatifs
[VBA] extraire des noeuds d'un gros fichier XMLInclure un élément dans un PDF
Trier un array et catégoriser les infos (ou requêtes multiples ?)trier une list, comparator
Trier un fichierProblème accéder l'élement DOM (parsing html)
VBA Trier date min max d'une serie de donnéesSQL et LIMIT : Selectionner tout sauf le premier élement
Appliquer un style à un élément parent au survol d'un enfant (CSS)Gros soucis ! element modifié tout seul alors que je ne veux pas!
Plus de sujets relatifs à : 3 Noeuds , trier par un élément commun


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR