3 Noeuds , trier par un élément commun

3 Noeuds , trier par un élément commun - XML/XSL - Programmation

Marsh Posté le 30-12-2010 à 11:17:40    

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

Reply

Marsh Posté le 30-12-2010 à 11:17:40   

Reply

Marsh Posté le 30-12-2010 à 14:18:20    

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é!  --
Reply

Marsh Posté le 30-12-2010 à 14:35:50    

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
Reply

Marsh Posté le 30-12-2010 à 14:36:30    

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

Reply

Marsh Posté le 30-12-2010 à 17:49:11    

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é!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed