probleme de namespace dans la transfo XSLT
Bonjour
Je ne connais pas grand chose en XSLT et je dois reprendre un scripte pour l'appliquer sur un xml. Ce scripte marche très bien si l'XML n'a pas de namespace. J'ai lu qu'il fallait déclarer les namespace dans le XSLT. C'est ce que je pensais faire, mais apparemment il manque qq chose:
voici l'XML source :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapserver">
<SOAP-ENV:Body>
<ns1:setMailFlag>
<key>toto</key>
<userId>3</userId>
<flag>1</flag>
<value>1</value>
<ids>1</ids>
<ids>2</ids>
</ns1:setMailFlag>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope> |
dans le scripte XSTL je déclare bien dans le stylesheet les namespace de mon source XML:
Code:
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
| <?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:str="http://exslt.org/strings"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://soapserver">
<xsl:template name="tmp">
<xsl:param name="out"/>
<xsl:variable name="varToPrint1">
<xsl:value-of select="$out"/>
</xsl:variable>
<xsl:value-of select="$varToPrint1"/>
</xsl:template>
<xsl:template match="/">
<xsl:for-each select="Envelope/Body/setMailFlag">
<xsl:variable name="val" select="value"/>
<xsl:variable name="fals" select="flag"/>
<xsl:call-template name="tmp">
<xsl:with-param name="out" select="$val"/>
</xsl:call-template>
<xsl:call-template name="tmp">
<xsl:with-param name="out" select="fals"/>
</xsl:call-template>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet> |
mais ca ne marche toujours pas.
Est ce que qq un peut me donner un petit coup de main?
merci a bientot