Modifier un node conditionné au contenu d'un autre node
Bonjour,
J'ai le XML suivant :
Code:
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:
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.