Bonjour,

J'ai le XML 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
 
<?xml version="1.0"?>
<data>
  <order>
    <livraison>
      <pays>FR</pays>
      <lastname>Michel</lastname>
      <firstname>christophe</firstname>
      <address1>route de troubadour</address1>
      <postcode>84110</postcode>
      <city>Vaison</city>
      <phone>0613157443</phone>
    </livraison>
    <client>
      <lastname>Michel</lastname>
      <firstname>christophe</firstname>
      <email>testeur@hotmail.com</email>
    </client>
</order>
</data>
Si client.email est égal à "testeur@hotmail.com", je voudrais en XSLT :
  • vider le node livraison (ou remplir les sous nodes par "")
  • modifier client.lastname par "Dupont"



Peut être ai-je un problème de logique

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
 
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output omit-xml-declaration="yes" indent="yes"/>
    <xsl:strip-space elements="*"/>
    <xsl:include href="liste_email.xsl" />
    <xsl:template match="node()|@*">
        <xsl:copy>
            <xsl:apply-templates select="node()|@*"/>
        </xsl:copy>
 
        <xsl:if test="contains(email, '@')">
            <xsl:if test="contains($mesemails, email)">
                <!-- quoi faire .... -->   
            </xsl:if>
        </xsl:if>
 
    </xsl:template>   
 
</xsl:stylesheet>
Je parviens bien à identifier si mon email matche ou pas, mais comme à cet endroit, je ne peux pas définir de variable globale, je sèche.

Avez vous une solution ?

Merci.