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 :

Problème après transformation xsl [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 39
    Par défaut Problème après transformation xsl

    Je transforme un flux XML.
    La transformation marche bien mais me rajoute une ligne que je ne veux pas.
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    Car à la récupération du flux, j'ai l'erreur :
    Failed delivery for exchangeId
    en raison d'un paramètre absent ou en trop et je me demande si cette ligne <?xml...> peut justement être ce paramètre. Je bloque depuis un moment car la transformation est bonne mais que cela ne fonctionne pas derrière donc si vous avez des remarques elles sont les bienvenues

    La transformation renomme la balise "MéthodeABC" en "Méthode" et enlève la balise "Avis"

    Voilà mon flux d'entrée, mon xslt et mon flux de sortie (simplifiés) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <MéthodeABC xmlns:web="lien">
            <Perso>Atréides</Perso>
             <Livre>1<Livre>
             <Avis>Génial</Avis>
          </MéthodeABC>
    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
    29
    30
    <xsl:stylesheet version="1.0"
    	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
     
    	<xsl:output method="xml" encoding="UTF-8" indent="no" standalone="no" xmlns="lien"/>
    	<xsl:template match="node() | @*" xmlns="lien">
    		<xsl:choose>
    			<xsl:when test="local-name() = 'MéthodeABC'">
    				<xsl:element name="Méthode">
    					<xsl:apply-templates />
    				</xsl:element>
    			</xsl:when>
                           <xsl:when test="local-name() = 'Perso'">
    				<xsl:element name="Perso">
    					<xsl:apply-templates />
    				</xsl:element>
    			</xsl:when>
                          <xsl:when test="local-name() = 'Livre'">
    				<xsl:element name="Livre">
    					<xsl:apply-templates />
    				</xsl:element>
    			</xsl:when>
    			<xsl:otherwise>
    				<xsl:copy >
    						<xsl:apply-templates select="node() | @*" />
    				</xsl:copy>
    			</xsl:otherwise>
    		</xsl:choose>
    	</xsl:template>
    	<xsl:template match="Avis" />
    </xsl:stylesheet>
    Et enfin le flux de sortie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
         <Méthode xmlns="lien">
            <Perso>Atréides</Perso>
             <Livre>1<Livre>
     
          </Méthode>
    Merci de votre aide !

  2. #2
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Il s'est fait par une réécriture de xsl:output comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:output method="xml" encoding="UTF-8" indent="no" omit-xml-declaration="yes" />

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    Ceci étant dit, une déclaration XML, c'est juste normal et ce n'est pas censé provoquer d'erreur.
    L'erreur indiquée est inconnue au bataillon.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 39
    Par défaut
    Merci de ton aide, j'ai rajouté le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    omit-xml-declaration="yes"
    Et je n'ai plus en flux de sortie la ligne correspondante.
    L'erreur est toujours là donc le problème vient d'ailleurs.

    Ceci étant dit, une déclaration XML, c'est juste normal et ce n'est pas censé provoquer d'erreur.
    Je suis d'accord et j'ai mis du temps avant de penser que l'erreur pouvait venir de là (mais ne trouvant pas je me suis dit "on ne sait jamais" ^^). Au moins je ne sais toujours pas d'où vient l'erreur mais je sais d'où elle ne vient pas

    Je passe le post en résolu

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

Discussions similaires

  1. [SAX] [XSLT] Problème transformation XSL avec SAX et namespace
    Par thierry_b dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 17/12/2008, 14h24
  2. [XSL] Conservation des guillemets après transformation XSL
    Par _-Sky-_ dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 22/07/2008, 11h05
  3. [XML] L'accès à nodeValue convertit les entités après transformation XSL ?
    Par Yragael dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 12/05/2008, 15h34
  4. Réponses: 9
    Dernier message: 31/01/2007, 15h04
  5. [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

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