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 :

probleme avec Variable [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 71
    Points : 46
    Points
    46
    Par défaut probleme avec Variable
    Bonjour,

    Dans ce code je veux ajouter une variable mais si je la met a n'importe quelle place mon fichier HTm ne ce génére pas ?:

    voila la variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:variable name= "var2">ceci</xsl:variable>
    et voila le code:
    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
     
     
    <?xml version="1.0"?>
     
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
     
    <xsl:template match="/">          
      <xsl:apply-templates select="Price/PriceMessage"/>
    </xsl:template>
     
     
    <xsl:template match="PriceMessage">
        <xsl:for-each select=".">
                                                   <xsl:apply-templates select="PriceRuleSet"/>
                    </xsl:for-each>                
    </xsl:template>
     
     
    <xsl:template match="PriceRuleSet">
        <xsl:for-each select=".">
                                                   <xsl:if test="ItemID[@Type='DEPT']">
                                                                                  ('','','<xsl:value-of select="PriceRule/PriceRuleID"/>','YES'),
                                                   </xsl:if>
                    </xsl:for-each>                
    </xsl:template>
     
     
     
    </xsl:stylesheet>
    Merci

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    déjà une erreur grave :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    Tu vires ceci et tu le remplaces par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
    Autrement cela ne sera pas interprété comme du XSLT.

    Si cela ne suffit pas, un cours sur les variables XSLT et leur particularité

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 71
    Points : 46
    Points
    46
    Par défaut Je viens de le modifié
    Salut,

    Je viens de changer laligne mais ca ne marche pas,
    je pense c'est une technique qui ressemble a XSLT crée par windows depuis un certain temps.
    Et je doit utiliser son language.
    ca ressemble a XSLT car le script que j'ai mit fonctionne et seulement quand il y a une variable a déclarer qu'il bug.

    Voila, j'ai trouvé le nom 'the Microsoft DOM XSL parser'.
    Est-ce que je pourrai trouver des forums a ce sujet?

    Merci

  4. #4
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Citation Envoyé par chochatown Voir le message
    Salut,

    Je viens de changer laligne mais ca ne marche pas,
    je pense c'est une technique qui ressemble a XSLT crée par windows depuis un certain temps.
    Oui et non, c'est la version draft de XSLT, abandonné depuis 2000
    Citation Envoyé par chochatown Voir le message
    Et je doit utiliser son language.
    Je ne vois pas pourquoi, c'est abandonné depuis plus de 10 ans même par microsoft
    Citation Envoyé par chochatown Voir le message
    Est-ce que je pourrai trouver des forums a ce sujet?
    Essaye dans les fac d'archéologie ou les musées, à la section "brouillon jamais utilisé en production"

  5. #5
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 71
    Points : 46
    Points
    46
    Par défaut ok
    Citation Envoyé par Erwy Voir le message
    Oui et non, c'est la version draft de XSLT, abandonné depuis 2000

    Je ne vois pas pourquoi, c'est abandonné depuis plus de 10 ans même par microsoft

    Essaye dans les fac d'archéologie ou les musées, à la section "brouillon jamais utilisé en production"
    Meme si je suis pas d'accord pour "brouillon jamais utilisé en production".
    Car c'est utilisé dans le systeme que je travail la dessus maintenant et ce systeme est fonctionnel dans beaucoups de pays dans le monde.
    Je ne peux pas dire c'est quoi le systeme exactement.

    Merci en tout cas.
    Je vais voir avec les documentations en ligne de windows

  6. #6
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Citation Envoyé par chochatown Voir le message
    Meme si je suis pas d'accord pour "brouillon jamais utilisé en production".
    Car c'est utilisé dans le systeme que je travail la dessus maintenant et ce systeme est fonctionnel dans beaucoups de pays dans le monde.
    Je ne peux pas dire c'est quoi le systeme exactement.
    Et bien c'est mal barré pour le système ...
    A ma connaissance la seul utilité qu'en fait MS c'est pour afficher un XML sous IE.
    Ca ne marche qu'avec les techno MS et celles-ci permettent d'utiliser la version draft ou xslt indifféremment.

    Si un "système" non seulement utilise une version draft mais en plus s'amuse à interdire la version XSLT...

  7. #7
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    les conseils du MSDN sur le sujet
    Do I need to use a different XSLT namespace with Internet Explorer?

    No. Use the standard xmlnssl="http://www.w3.org/1999/XSL/Transform" syntax. If Internet Explorer returns an error when you use this namespace, it is likely that you are using an earlier version of MSXML that does not support XSLT. If you have older XSL files and do not want to convert them to XSLT files, you can still use the namespace declaration xmlnssl="http://www.w3.org/TR/WD-xsl". To convert XSL files to XSLT files, use the XSL to XSLT Converter1.1, available from MSDN Online Downloads at http://msdn.microsoft.com/downloads/.
    Il faut "upgrader" la version de msxml pour pouvoir travailler avec XSLT et convertir les feuilles avec l'outils fourni

  8. #8
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 71
    Points : 46
    Points
    46
    Par défaut la cause
    Je ne voix pas la cause. Pour quoi quand je change le xmlns :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
    car c'est bien ecris en XSLT.

    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
    <?xml version="1.0"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">	
      <xsl:apply-templates select="Price/PriceMessage"/>
    </xsl:template>
     
     
     
     
     
    <xsl:template match="PriceMessage">
        <xsl:for-each select=".">
    <xsl:value-of select="@MessageID"/>
     
    			<xsl:apply-templates select="PriceRuleSet"/>
      	</xsl:for-each>	
    </xsl:template>
     
     
     
     
     
    <xsl:template match="PriceRuleSet">
        <xsl:for-each select=".">
    			<xsl:if test="ItemID[@Type='DEPT']">
    					('','','<xsl:value-of select="PriceRule/PriceRuleID"/>','YES'),
    			</xsl:if>
    	</xsl:for-each>	
    </xsl:template>
     
    </xsl:stylesheet>

    Aussi le fichier XML est le suivant :

    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
     
     
    <?xml version="1.0" encoding="utf-8"?>
    <?xml-stylesheet type="text/xsl" href="RFILE.xsl"?>
    <Price xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.nrf-arts.org/IXRetail/namespace/">
      <PriceMessage MessageID="FS101">
        <ResponseType />
        <MessageQualification>
          <Name>PromotionFS101</Name>
        </MessageQualification>
        <PriceRuleSet>
          <PriceRule>
            <Eligibility Function="LOYALTY">
              <EligibilityID>101</EligibilityID>
            </Eligibility>
            <EffectiveDateTimestamp>2000-01-01T00:00:00.0000000-05:00</EffectiveDateTimestamp>
            <ExpirationDateTimestamp>2029-12-31T23:59:59.0000000-05:00</ExpirationDateTimestamp>
          </PriceRule>
        </PriceRuleSet>
        <PriceRuleSet>
          <ItemID Type="DEPT">2</ItemID>
          <PriceRule>
            <PriceRuleID>1001</PriceRuleID>
            <Description>10% off department 2 (FS101)</Description>
            <Eligibility Function="KEEP_DISC_AFTER_THRESHOLD">
              <Eligibility Function="CONTRI_RATIO=100.000%">
                <ItemID Type="DEPT">2</ItemID>
                <ThresholdAmount>0.010</ThresholdAmount>
                <Eligibility Function="EXCLUDE">
                  <ItemCollectionID>NON-DISCOUNTABLE</ItemCollectionID>
                </Eligibility>
              </Eligibility>
            </Eligibility>
            <Derivation Function="WHOLE_MATCH">
              <RetailPriceModifier>
                <SequenceNumber>0</SequenceNumber>
                <Percent>10.000</Percent>
              </RetailPriceModifier>
            </Derivation>
          </PriceRule>
        </PriceRuleSet>
        <PriceRuleSet>
          <ItemID Type="TRANSACTION" />
          <PriceRule>
            <PriceRuleID>1002</PriceRuleID>
            <Description>5% off transaction (FS101)</Description>
            <Eligibility Function="KEEP_DISC_AFTER_THRESHOLD">
              <Eligibility Function="CONTRI_RATIO=100.000%">
                <ItemID Type="TRANSACTION" />
                <ThresholdAmount>0.010</ThresholdAmount>
                <Eligibility Function="EXCLUDE">
                  <ItemCollectionID>NON-DISCOUNTABLE</ItemCollectionID>
                </Eligibility>
              </Eligibility>
            </Eligibility>
            <Derivation Function="WHOLE_MATCH">
              <RetailPriceModifier>
                <SequenceNumber>0</SequenceNumber>
                <Percent>5.000</Percent>
              </RetailPriceModifier>
            </Derivation>
          </PriceRule>
        </PriceRuleSet>
      </PriceMessage>
      <PriceMessage MessageID="FS102">
        <ResponseType />
        <MessageQualification>
          <Name>PromotionFS102</Name>
        </MessageQualification>
        <PriceRuleSet>
          <PriceRule>
            <Eligibility Function="LOYALTY">
              <EligibilityID>102</EligibilityID>
            </Eligibility>
            <EffectiveDateTimestamp>2000-01-01T00:00:00.0000000-05:00</EffectiveDateTimestamp>
            <ExpirationDateTimestamp>2029-12-31T23:59:59.0000000-05:00</ExpirationDateTimestamp>
          </PriceRule>
        </PriceRuleSet>
        <PriceRuleSet>
          <ItemID Type="DEPT">2</ItemID>
          <PriceRule>
            <PriceRuleID>2001</PriceRuleID>
            <Description>20% off department 2 (FS102)</Description>
            <Eligibility Function="KEEP_DISC_AFTER_THRESHOLD">
              <Eligibility Function="CONTRI_RATIO=100.000%">
                <ItemID Type="DEPT">2</ItemID>
                <ThresholdAmount>0.010</ThresholdAmount>
                <Eligibility Function="EXCLUDE">
                  <ItemCollectionID>NON-DISCOUNTABLE</ItemCollectionID>
                </Eligibility>
              </Eligibility>
            </Eligibility>
            <Derivation Function="WHOLE_MATCH">
              <RetailPriceModifier>
                <SequenceNumber>0</SequenceNumber>
                <Percent>20.000</Percent>
              </RetailPriceModifier>
            </Derivation>
          </PriceRule>
        </PriceRuleSet>
        <PriceRuleSet>
          <ItemID Type="DEPT">3</ItemID>
          <PriceRule>
            <PriceRuleID>2002</PriceRuleID>
            <Description>10% off department 3 (FS102)</Description>
            <Eligibility Function="KEEP_DISC_AFTER_THRESHOLD">
              <Eligibility Function="CONTRI_RATIO=100.000%">
                <ItemID Type="DEPT">3</ItemID>
                <ThresholdAmount>0.010</ThresholdAmount>
                <Eligibility Function="EXCLUDE">
                  <ItemCollectionID>NON-DISCOUNTABLE</ItemCollectionID>
                </Eligibility>
              </Eligibility>
            </Eligibility>
            <Derivation Function="WHOLE_MATCH">
              <RetailPriceModifier>
                <SequenceNumber>0</SequenceNumber>
                <Percent>10.000</Percent>
              </RetailPriceModifier>
            </Derivation>
          </PriceRule>
        </PriceRuleSet>
      </PriceMessage>
      <PriceMessage MessageID="new">
        <ResponseType />
        <MessageQualification>
          <Name>test1550</Name>
        </MessageQualification>
        <PriceRuleSet>
          <PriceRule>
            <Eligibility Function="LOYALTY">
              <EligibilityID>1</EligibilityID>
            </Eligibility>
            <EffectiveDateTimestamp>2010-07-21T00:00:00.0000000-04:00</EffectiveDateTimestamp>
            <ExpirationDateTimestamp>2011-07-29T23:59:59.0000000-04:00</ExpirationDateTimestamp>
          </PriceRule>
        </PriceRuleSet>
        <PriceRuleSet>
          <ItemID Type="DEPT">3</ItemID>
          <PriceRule>
            <PriceRuleID>1</PriceRuleID>
            <Description>1pt/$1 on Dept3</Description>
            <Eligibility Function="NO_BEST_OFFER">
              <Eligibility Function="CONTRI_RATIO=100.000%;LOG">
                <ItemID Type="DEPT">3</ItemID>
                <ThresholdAmount>1.000</ThresholdAmount>
              </Eligibility>
            </Eligibility>
            <Derivation>
              <Derivation Function="POINTS">
                <Quantity>1.000</Quantity>
              </Derivation>
            </Derivation>
          </PriceRule>
        </PriceRuleSet>
      </PriceMessage>
    </Price>
    Mais pourtant ca ne marche pas.
    j'utilise IE8

    Est ce que la cause, est que le fichier XML ne peut etre traiter que par un XSL (2001) ?

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 565
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 565
    Points : 21 630
    Points
    21 630
    Par défaut
    Sans déconner, c'est vraiment très compliqué de comprendre ce que tu veux dire, ce que tu veux, ce que tu as, et ce que tu as essayé.

    Est-ce que tu pourrais faire un effort pour t'exprimer clairement ? Pour commencer, des phrases simples, sujet verbe complément, mais qui veulent vraiment dire quelque chose.
    Une orthographe, des accents et une grammaire correctes seraient moins gênantes, aussi.

    Ceci étant dit :

    Est ce que la cause, est que le fichier XML ne peut etre traiter que par un XSL (2001) ?
    Un fichier XML est forcément traitable par XSLT, par définition. Sinon, ce n'est pas un fichier XML.
    Après, IE8 est-il compatible, je le suppose, mais je n'en sais rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:apply-templates select="Price/PriceMessage"/>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:template match="PriceMessage">
    Attention, tu essaies de sélectionner ou de matcher des éléments qui sont dans le namespace "http://www.nrf-arts.org/IXRetail/namespace/".

    Il faut donc l'indiquer.
    Comme ça fonctionne à base de XPath, et qu'en XPath les éléments qui ont un namespace doivent toujours être préfixés, il faut donc les préfixer.

    Donc, ajouter xmlns:ixr="http://www.nrf-arts.org/IXRetail/namespace/" dans la racine de ta stylesheet.

    Corriger les passages que j'ai cités comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:apply-templates select="ixr:Price/ixr:PriceMessage"/>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:template match="ixr:PriceMessage">
    et tout le reste.

    Note: j'ai choisi "ixr" comme préfixe, mais tu peux prendre n'importe quoi.

  10. #10
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 71
    Points : 46
    Points
    46
    Par défaut ok
    Ce que je veux faire :

    1. SI le ItemID[@Type='DEPT']" : extraire du fichier XML les données PriceMessage et le PriceRuleID.

    MAis puisque Un PriceMessage peux contenir plusiers PriceRuleID.
    Exemple :
    - On a dans le PriceMessage@messageID = FS102, DEUX ItemID[@Type='DEPT']. (C'est le 2 et 3).
    D'ou je devrait afficher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          <ItemID Type="DEPT">2</ItemID>
          <PriceRule>
            <PriceRuleID>2001</PriceRuleID>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <ItemID Type="DEPT">3</ItemID>
          <PriceRule>
            <PriceRuleID>2002</PriceRuleID>
    Et le resultat finale de l'affchage devrait etre comme suit :


    ('','FS101','1001','YES'),

    ('','FS102','2001','YES'),

    ('','FS102','2002','YES'),

    ('','new','1','YES'),

    Mais, puisque je ne peux pas utiliser de variable pour enregistrer les valeur.
    J'ai le résultat suivant :

    FS101 ('','','1001','YES'), FS102 ('','','2001','YES'), ('','','2002','YES'), new ('','','1','YES'),


    Avez vous une proposition code XSLT qui pourrai m'affciher ce que je veux.
    Voila le fichier XSLT que j'utilise:
    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
    <?xml version="1.0"?>
    <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" 
    xmlns:ixr="http://www.nrf-arts.org/IXRetail/namespace/" >
    <xsl:template match="/">	
      <xsl:apply-templates select="ixr:Price/ixr:PriceMessage"/>
    </xsl:template>
     
     
     
     
     
    <xsl:template match="ixr:PriceMessage">
        <xsl:for-each select=".">
    <xsl:value-of select="@MessageID"/>
     
    			<xsl:apply-templates select="ixr:PriceRuleSet"/>
      	</xsl:for-each>	
    </xsl:template>
     
     
     
     
     
    <xsl:template match="ixr:PriceRuleSet">
        <xsl:for-each select=".">
    			<xsl:if test="ixr:ItemID[@Type='DEPT']">
    					('','','<xsl:value-of select="ixr:PriceRule/ixr:PriceRuleID"/>','YES'),
    			</xsl:if>
    	</xsl:for-each>	
    </xsl:template>
     
    </xsl:stylesheet>
    Voila le fichier XML de nouveau :
    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
      <PriceMessage MessageID="FS102">
        <ResponseType />
        <MessageQualification>
          <Name>PromotionFS102</Name>
        </MessageQualification>
        <PriceRuleSet>
          <PriceRule>
            <Eligibility Function="LOYALTY">
              <EligibilityID>102</EligibilityID>
            </Eligibility>
            <EffectiveDateTimestamp>2000-01-01T00:00:00.0000000-05:00</EffectiveDateTimestamp>
            <ExpirationDateTimestamp>2029-12-31T23:59:59.0000000-05:00</ExpirationDateTimestamp>
          </PriceRule>
        </PriceRuleSet>
        <PriceRuleSet>
          <ItemID Type="DEPT">2</ItemID>
          <PriceRule>
            <PriceRuleID>2001</PriceRuleID>
            <Description>20% off department 2 (FS102)</Description>
            <Eligibility Function="KEEP_DISC_AFTER_THRESHOLD">
              <Eligibility Function="CONTRI_RATIO=100.000%">
                <ItemID Type="DEPT">2</ItemID>
                <ThresholdAmount>0.010</ThresholdAmount>
                <Eligibility Function="EXCLUDE">
                  <ItemCollectionID>NON-DISCOUNTABLE</ItemCollectionID>
                </Eligibility>
              </Eligibility>
            </Eligibility>
            <Derivation Function="WHOLE_MATCH">
              <RetailPriceModifier>
                <SequenceNumber>0</SequenceNumber>
                <Percent>20.000</Percent>
              </RetailPriceModifier>
            </Derivation>
          </PriceRule>
        </PriceRuleSet>
        <PriceRuleSet>
          <ItemID Type="DEPT">3</ItemID>
          <PriceRule>
            <PriceRuleID>2002</PriceRuleID>
            <Description>10% off department 3 (FS102)</Description>
            <Eligibility Function="KEEP_DISC_AFTER_THRESHOLD">
              <Eligibility Function="CONTRI_RATIO=100.000%">
                <ItemID Type="DEPT">3</ItemID>
                <ThresholdAmount>0.010</ThresholdAmount>
                <Eligibility Function="EXCLUDE">
                  <ItemCollectionID>NON-DISCOUNTABLE</ItemCollectionID>
                </Eligibility>
              </Eligibility>
            </Eligibility>
            <Derivation Function="WHOLE_MATCH">
              <RetailPriceModifier>
                <SequenceNumber>0</SequenceNumber>
                <Percent>10.000</Percent>
              </RetailPriceModifier>
            </Derivation>
          </PriceRule>
        </PriceRuleSet>
      </PriceMessage>

  11. #11
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 71
    Points : 46
    Points
    46
    Par défaut et voila la reponse
    Merci a vous tous, Je viens de trouver la reponse :

    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
    <?xml version="1.0"?>
    <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" 
    xmlns:ixr="http://www.nrf-arts.org/IXRetail/namespace/" >
    <xsl:template match="/">	
      <xsl:apply-templates select="ixr:Price/ixr:PriceMessage"/>
    </xsl:template>
    <xsl:template match="ixr:PriceMessage">
        <xsl:for-each select=".">
    		<xsl:variable name= "var2"><xsl:value-of select="@MessageID"/></xsl:variable>
    			<xsl:for-each select="ixr:PriceRuleSet">
    					<xsl:if test="ixr:ItemID[@Type='DEPT']">
    							('',' <xsl:value-of select="$var2"/>','<xsl:value-of select="ixr:PriceRule/ixr:PriceRuleID"/>','YES'),
    					</xsl:if>
    			</xsl:for-each>		
      	</xsl:for-each>	
    </xsl:template>
    </xsl:stylesheet>


    Resultat:

    ('',' FS101','1001','YES'), ('',' FS102','2001','YES'), ('',' FS102','2002','YES'), ('',' new','1','YES'),

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

Discussions similaires

  1. probleme avec variable d'environnement pour python
    Par k_boy dans le forum Général Python
    Réponses: 4
    Dernier message: 24/07/2011, 01h41
  2. probleme avec variable char
    Par SimpleMe dans le forum C++
    Réponses: 3
    Dernier message: 02/07/2007, 14h17
  3. probleme avec variable
    Par kilanepa dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/04/2006, 15h08
  4. Réponses: 3
    Dernier message: 24/02/2005, 15h48

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