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 :dans le scripte XSTL je déclare bien dans le stylesheet les namespace de mon source XML:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
mais ca ne marche toujours pas.
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 <?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>
Est ce que qq un peut me donner un petit coup de main?
merci a bientot
Partager