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 :

[XSLT] ne fonctionne pas sur Un message SOAP


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 4
    Points
    4
    Par défaut [XSLT] ne fonctionne pas sur Un message SOAP
    Bonjour le groupe,

    Je suis assez débutant dans les XSLT et j'ai un souci, je n'arrive pas à appliquer une XSLT sur un message SOAP

    Voici le code du XML- SOAP

    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="http://eu.toyota.com/nmscordering/vehicleordering/common/errorhandling/v1" xmlns:ns1="http://eu.toyota.com/nmscordering/vehicleordering/reservevehicle/request/v1">
       <env:Body>
          <InquireVehicleResponse xmlns="http://eu.toyota.com/nmscordering/vehicleordering/inquirevehicle/response/v1">
             <Vehicle>
                <InvalidReason/>
                <SSN-FK-SFX-Color>73-ADT250L-AEFEYW-FD-040FE16</SSN-FK-SFX-Color>
                <Availability>
                   <AVID>16095175</AVID>
                   <Location>MPC</Location>
                   <ProductionMonth>2008-04</ProductionMonth>
                   <ETA>2008-06-05+01:00</ETA>
                   <Showroom>0</Showroom>
                   <PPOChangeAllowed>1</PPOChangeAllowed>
                   <Reservable>0</Reservable>
                </Availability>
                <Options/>
             </Vehicle>
          </InquireVehicleResponse>
       </env:Body>
    </env:Envelope>
    Le XSLT que j'ai définit est

    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="C:\data\xml_xslt_soap\MVOM\VehicleInquiryReply.xsl"?>
    <?altova_samplexml C:\data\xml_xslt_soap\MVOM\vehicleInquiryReplyInput_normal.xml?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    	<xsl:template match="/">
    		<ns0:Z_AX_VOM_WS_INQUIRY.Response xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
    				<E_ZAXINQREPL>
    						<DETAIL>
    							<CVITEMAN>
    								<xsl:value-of select="/env:Envelope/env:Body/InquireVehicleResponse/Vehicle/Availability/AVID"/>
    							</CVITEMAN>
    						</DETAIL>
    				</E_ZAXINQREPL>
     
    		</ns0:Z_AX_VOM_WS_INQUIRY.Response>
    	</xsl:template>
    </xsl:stylesheet>
    Je dois extraire le contenu de la balise AVID su document SOAP et la transformer vers la balise <CVITEMAN> dans le document de sortie.
    Que je mette n'importe quoi dans le début du select de la balise <CVITEMAN>, cela ne donne rien.
    J'ai essayé :
    - /env:Envelope/env:Body/InquireVehicleResponse/Vehicle/Availability/AVID
    -
    /*/InquireVehicleResponse/Vehicle/Availability/AVID.

    Si j'indique ///InquireVehicleResponse/Vehicle/Availability/AVID, XMLSPY me dit qu'il y a une erreur dans le XPATH.

    Cela ne donne rien comme résultat.

    Le résultat en output que j'ai est.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:Z_AX_VOM_WS_INQUIRY.Response xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
    	<E_ZAXINQREPL>
    		<DETAIL>
    			<CVITEMAN></CVITEMAN>
    		</DETAIL>
    	</E_ZAXINQREPL>
    </ns0:Z_AX_VOM_WS_INQUIRY.Response>
    Y a t'il quelqu'un de plus aguéri que moi dans ce domaine qui pourra m'aider ?

    Merçi d'avance aux personnes qui pourrons m'aider.

    Eric Koralewski

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    C'est parce que tu n'utilises pas le namespace (xmlns="http://eu.toyota.com/nmscordering/vehicleordering/inquirevehicle/response/v1").
    Un xsl de ce genre marche :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
      xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
      xmlns:toy="http://eu.toyota.com/nmscordering/vehicleordering/inquirevehicle/response/v1"
      xmlns:ns0="http://eu.toyota.com/nmscordering/vehicleordering/common/errorhandling/v1" 
      xmlns:ns1="http://eu.toyota.com/nmscordering/vehicleordering/reservevehicle/request/v1"
    >
      <xsl:template match="/">
    
    		<ns0:Z_AX_VOM_WS_INQUIRY.Response>
    				<E_ZAXINQREPL>
    						<DETAIL>
    							<CVITEMAN>
    								<xsl:value-of select="//toy:AVID"/>
    							</CVITEMAN>
    						</DETAIL>
    				</E_ZAXINQREPL>
    		</ns0:Z_AX_VOM_WS_INQUIRY.Response>
    
      </xsl:template>
    </xsl:stylesheet>

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Ca fonctionne.
    Merci beaucoup pour la réponse.

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

Discussions similaires

  1. Requete qui ne fonctionne pas sur toutes les versions de MySQL
    Par goldorax113 dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/06/2006, 11h04
  2. Réponses: 4
    Dernier message: 03/04/2006, 08h50
  3. Réponses: 7
    Dernier message: 10/02/2006, 18h00
  4. TXMLDocument, ne fonctionne pas sur tous les PC
    Par Neilos dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/10/2005, 22h33
  5. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 11h08

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