Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2983 connectés 

  FORUM HardWare.fr
  Programmation
  ASP

  [ASP] Parser un XML provenant d'un webserviceSOAP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ASP] Parser un XML provenant d'un webserviceSOAP

n°2218601
TheDadar
Posté le 04-02-2014 à 16:18:42  profilanswer
 

Bonjour à tous.
 
Après plusieurs jours d'essais infructueux je me tourne vers vous pour mon problème :
Je dois interagir avec un webservice SOAP (wsdl).
J'ai réussi à envoyer ma requête et récupérer le XML qui va bien.
Cependant impossible de le parser correctement, ou en tout cas de récupérer une donnée dans une string.
 
Pour me connecter j'utilise ce code (qui fonctionne) :  

Code :
  1. Dim oXmlHTTP, SOAPRequest, myXML
  2. Set oXmlHTTP = CreateObject("Microsoft.XMLHTTP" )
  3. Set myXML =Server.CreateObject("Microsoft.XMLDOM" )
  4. myXML.Async=False
  5. oXmlHTTP.Open "GET", "http://intraweb.xxxxx.com/ReferentialDataWS_v4.0/services/SecureAxisWrapperRefDataPersonGroupService", False, _
  6.    "XXXXX", "XXXXX"
  7. oXmlHTTP.setRequestHeader "Content-Type", "application/soap+xml; charset=utf-8"
  8. oXmlHTTP.setRequestHeader "SOAPAction", "http://intraweb.xxxx.com/ReferentialDataWS_v4.0/services/SecureAxisWrapperRefDataPersonGroupService"
  9. SOAPRequest = _ 
  10.   "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:all=""http://all.service.XXXXX.com"">" &_
  11.    "<soapenv:Header/>" &_
  12.   " <soapenv:Body>"&_
  13.   "    <all:getPersonBySgid>"&_
  14.   "       <all:sgid>XXXXXXX</all:sgid>"&_
  15.   "    </all:getPersonBySgid>"&_
  16.    "</soapenv:Body>"&_
  17. "</soapenv:Envelope>"
  18.  
  19.   oXmlHTTP.send SOAPRequest
  20.   Response.Write "<xmp>"
  21.   Response.Write oXmlHTTP.responseXML.xml
  22.   myXML = oXmlHTTP.responseXML.xml
  23.   Response.Write "</xmp>"


 
Ici je dois mettre les balises <xmp> sinon la sortie ne me donne que les données concaténées, sans les balises XML.
Voici ce qui ressort, une fois mis en forme (raccourci) :  

Code :
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3.   <soapenv:Body>
  4.     <getPersonBySgidResponse xmlns="http://all.service.xxxxx.com">
  5.       <getPersonBySgidReturn>
  6.         <alternateContactSgi xsi:nil="true"/>
  7.         <birthDate>1986-11-14T22:00:00.327Z</birthDate>
  8.         <birthDateOkay>true</birthDateOkay>
  9.         <branchId>B78</branchId>
  10.         <businessGroupId>R78E</businessGroupId>
  11.         <contractEndDate xsi:nil="true"/>
  12.         <contractStartDate>2013-09-16T22:00:00.327Z</contractStartDate>
  13.         <contractorCompanyName xsi:nil="true"/>
  14.         <countryId>FRA</countryId>
  15.         <delegationId>DLFRA</delegationId>
  16.         <departmentName>xxx</departmentName>
  17.         <departmentNumber>XXXXX</departmentNumber>
  18.         <detailed>true</detailed>
  19.         <divisionName>XXXXO -  SIEGE SOCIAL</divisionName>
  20.         <divisionNumber>31346</divisionNumber>
  21.         <educationCompound xsi:nil="true"/>
  22.         <employeePosition>N</employeePosition>
  23.         <employeePositionLocal xsi:nil="true"/>
  24.         <faxNumber xsi:nil="true"/>
  25.         <filiereId>ADM</filiereId>
  26.         <firstname>Lakhdar</firstname>
  27.         <firstnameEncoded xsi:nil="true"/>
  28.         <firstnamePreferred xsi:nil="true"/>
  29.         <fullName>Lakhdar XXXX</fullName>
  30.         <inChargeSgiJuridic xsi:nil="true"/>
  31.         <inChargeSgiMission xsi:nil="true"/>
  32.       </getPersonBySgidReturn>
  33.     </getPersonBySgidResponse>
  34.   </soapenv:Body>
  35. </soapenv:Envelope>


 
Donc tout semble normal (n'est-ce pas ? Peut être déjà une erreur ici ? :) )
 
Voici le code que j'utilise pour tenter de parser le XML :  

Code :
  1. Dim objXML,objRoot ,I, thisNode,strID, strNarrative, thisChild, selectedNode,testStr
  2. Set objXML= Server.CreateObject("MSXML2.DOMDocument" )
  3. objXML.async = False
  4. objXML.setProperty "SelectionLanguage", "XPath"
  5. objXML.setProperty "SelectionNamespaces", "xmlns='http://all.service.xxxxx.com' " & _
  6.  "xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' " & _
  7.  "xmlns:xsd='http://www.w3.org/2001/XMLSchema' " & _
  8.  "xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' "
  9. objXML.loadXML(myXML)
  10. Set selectedNode= objXML.selectSingleNode("//soapenv:Envelope/soapenv:Body/getPersonBySgidResponse/getPersonBySgidReturn/getPersonBySgidReturn/divisionName" )
  11. Set objRoot = objXML.documentElement
  12. Response.Write "<br/> myXml == "  &  myXML
  13. Response.Write "<br/> objXML == "  &  objXML.Text
  14. Response.Write "<br/> objRoot == "  &  objRoot.Text
  15. Response.Write "<br/> selectedNode == "  &  selectedNode.Text


 
Et là dans une page qui relève les erreurs j'ai un joli :  
"line 68 : Object required " (ligne qui correspond ici à la dernière ligne)...
 
J'ai tenté plusieurs méthodes pour le "selectedNode" en argument (juste le nom de l'attribut final, le chemin pas entier etc...) sans succès.
 
Peut être quelqu'un ici verra (enfin) ce qui cloche ?
 
Merci de m'avoir lu :)

mood
Publicité
Posté le 04-02-2014 à 16:18:42  profilanswer
 

n°2218636
TheDadar
Posté le 04-02-2014 à 23:21:17  profilanswer
 

Personne ? :(


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASP

  [ASP] Parser un XML provenant d'un webserviceSOAP

 

Sujets relatifs
Recherche tutoriel pour Flash Cs5.5 + Xml (read and write)[XML] Envoyer en argument de script des valeurs du journal d'evenement
[Résolu][Perl] XML::DOM Comment avoir une belle indentation?[JQUERY/ASP/ORACLE]TABLE AJAX COLLAPSE PAGINATION
Fusionner plusieurs fichiers XML avec la même structure[ASP.NET] Modifier contenu page web sans programmation
[ASP] Do While sur une requête erronéeGénérer un fichier XML a partir de données HTML
texte et XMLASP.NET Lancer tache asynchrone pendant refresh d'updatepanel
Plus de sujets relatifs à : [ASP] Parser un XML provenant d'un webserviceSOAP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR