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 de namespace dans la transfo XSLT


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Points : 79
    Points
    79
    Par défaut 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 : 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>
    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
    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

  2. #2
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    en faite dans tes match tu ne précises pas le namespace de tes balises
    donc remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Envelope/Body/setMailFlag
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SOAP-ENV:Envelope/SOAP-ENV:Body/ns1:setMailFlag
    et voila une jolie feuille de style
    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
     
    <?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:apply-templates select="SOAP-ENV:Envelope/SOAP-ENV:Body/ns1:setMailFlag"/>
    	</xsl:template>
     
    	<xsl:template match="ns1: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:template>
    </xsl:stylesheet>

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Points : 79
    Points
    79
    Par défaut
    Merci beaucoup de ta réponse. Ca a marché du premier coup et en plus j'ai tout compris

    Merci a bientot

  4. #4
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    merci

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

Discussions similaires

  1. probleme prefix/namespace dans fichier XSLT
    Par ostralo dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 05/10/2011, 17h28
  2. [XSLT]transfo xslt dans un fichier texte !
    Par moi95 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 05/02/2007, 17h29
  3. [XSLT] Déclaration de namespace dans un doc xml
    Par Vanille dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 06/12/2006, 15h26
  4. [xsl] namespace dans le html apres transformation xslt...
    Par -ADX- dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/05/2006, 14h16
  5. namespace dans feuille xslt : comment ca marche exactement ?
    Par guipom dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 11/11/2004, 16h21

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