[XSL+XPath] Traitements conditionel de noeuds (débutant)

Traitements conditionel de noeuds (débutant) [XSL+XPath] - XML/XSL - Programmation

Marsh Posté le 16-07-2008 à 10:26:19    

Mon problème est sans doute très simple et en éternel débutant, j'ai un peu.
J'arrive à récuperer la date de début (minimum) et la date fin (maximum),.
Or je veux récupérer cela à chaque fois que l'on a une balise <ANNONCE> ayant le même attribut numcommande et la même valeur pour la balise <CONTENU></CONTENU>...
En quel sorte, je souhaite "fusionner" les balises <ANNONCE> ayant le même attribut numcommande et la même valeur pour la balise <CONTENU></CONTENU> pour en faire qu'une
avec la date minimum et maximum des 2 balises ANNONCES.
 
 
Comment dois-je gérer cette problématique
Je ne sais trop comment me débrouiller : structure itérative <xsl:for-each> ou chemin Xpath pour gérer le fait de réaliser une série de traitement
C'est sans doute simple.
 
MERCI BEAUCOUP D'AVANCE
 
 
 
Par défaut [XSL+XPath] Traitements conditionel de noeuds (débutant)
Mon problème est sans doute très simple et en éternel débutant, j'ai un peu.
J'arrive à récuperer la date de début (minimum) et la date fin (maximum),.
Or je veux récupérer cela à chaque fois que l'on a une balise <ANNONCE> ayant le même attribut numcommande et la même valeur pour la balise <CONTENU></CONTENU>...
En quel sorte, je souhaite "fusionner" les balises <ANNONCE> ayant le même attribut numcommande et la même valeur pour la balise <CONTENU></CONTENU> pour en faire qu'une
avec la date minimum et maximum des 2 balises ANNONCES.
 
 
Comment dois-je gérer cette problématique
Je ne sais trop comment me débrouiller : structure itérative <xsl:for-each> ou chemin Xpath pour gérer le fait de réaliser une série de traitement
C'est sans doute simple.
 
MERCI BEAUCOUP D'AVANCE
 
XML
Code :
 
 

Code :
  1. <ANNONCE numcommande="90064728" commande_idn="119634" datedebut="2008-07-10T00:00:00" datefin="2008-07-11T00:00:00">
  2.     <MONTANTS mnthtx="5" mntttc="5,79"/>
  3.      <CONTENU>A</CONTENU>
  4. </ANNONCE>
  5.   <ANNONCE numcommande="90064728" commande_idn="119634" datedebut="2008-07-14T00:00:00" datefin="2008-07-16T00:00:00">
  6.     <MONTANTS mnthtx="5" mntttc="5,79"/>
  7.      <CONTENU>A</CONTENU>
  8. </ANNONCE>
  9.   <ANNONCE numcommande="1803119" commande_idn="119688" datedebut="2008-07-10T00:00:00" datefin="2008-07-10T00:00:00">
  10.     <MONTANTS mnthtx="5" mntttc="5,79"/>
  11.      <CONTENU>B</CONTENU>
  12. </ANNONCE>


 
 
XSL
Code :
 
 
 

Code :
  1. <xsl:template name="template_GetMaxDate">
  2.  <xsl:param name="nodesAnnonces"/>
  3.  <xsl:for-each select="$nodesAnnonces">
  4.   <xsl:sort order="descending" select="@datedebut"></xsl:sort>
  5.   <xsl:if test="position()=1">
  6.    <xsl:value-of select="@datedebut"></xsl:value-of>
  7.   </xsl:if>
  8.  </xsl:for-each>
  9. </xsl:template>
  10. <xsl:template name="template_GetMinDate">
  11.  <xsl:param name="nodesAnnonces"/>
  12.  <xsl:for-each select="$nodesAnnonces">
  13.   <xsl:sort order="ascending" select="@datedebut"></xsl:sort>
  14.   <xsl:if test="position()=1">
  15.    <xsl:value-of select="@datedebut"></xsl:value-of>
  16.   </xsl:if>
  17.  </xsl:for-each>
  18. </xsl:template>
  19. <xsl:template name="template_GetMaxDate">
  20.  <xsl:param name="nodesAnnonces"/>
  21.  <xsl:for-each select="$nodesAnnonces">
  22.   <xsl:sort order="descending" select="@datedebut"></xsl:sort>
  23.   <xsl:if test="position()=1">
  24.    <xsl:value-of select="@datedebut"></xsl:value-of>
  25.   </xsl:if>
  26.  </xsl:for-each>
  27. </xsl:template>
  28. <xsl:template name="template_GetMinDate">
  29.  <xsl:param name="nodesAnnonces"/>
  30.  <xsl:for-each select="$nodesAnnonces">
  31.   <xsl:sort order="ascending" select="@datedebut"></xsl:sort>
  32.   <xsl:if test="position()=1">
  33.    <xsl:value-of select="@datedebut"></xsl:value-of>
  34.   </xsl:if>
  35.  </xsl:for-each>
  36. </xsl:template>


Reply

Marsh Posté le 16-07-2008 à 10:26:19   

Reply

Marsh Posté le 17-07-2008 à 09:20:34    

Si tu nous métais le résultat que tu veux obtenir aussi? Parce que j'ai beau essayé d'interprèter ta question... spa très clair.


Message édité par avander le 17-07-2008 à 09:20:46
Reply

Sujets relatifs:

Leave a Replay

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