Consommer un webservice qui renvoie un complexType
Bonjour,
Je recherche la méthode permettant de consommer un webservice renvoyant un complexType.
J'ai installé Microsoft SOAP Toolkit Version 3, je sais récupérer la réponse d'un webservice dans une variable :
Code:
1 2 3 4 5 6 7 8 9
| Dim soap, reponse
Set soap = Server.CreateObject("MSSOAP.SOAPClient30")
soap.ClientProperty("ServerHTTPRequest") = True
Call soap.mssoapinit( "http://localhost/leWebservice" )
soap.ConnectorProperty("AuthUser") = "user"
soap.ConnectorProperty("AuthPassword") = "login"
Set reponse = soap.maFonction( parametre1, parametre2 ) |
Mais je ne sais pas comment traiter ma variable.
Serait-il possible à partir du fichier wsdl de créer un objet (en faisant une dll par ex) qui serait appelé comme suit :
Code:
1 2
| Set monObjet = Server.CreateObject("MonObjet")
Set monObjet.complexType = soap.maFonction( parametre1, parametre2 ) |
Merci d'avance, je sèche total !
Problème de manipulation de xml
Merci pour cette réponse.
Au final, j'ai opté pour une autre solution, je récupère mes réponses au format xml.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Set noeuds = soap.maFonction( parametre1, parametre2 )
Set xml = creerXML( noeuds )
Private Function creerXML( noeuds )
Dim xml, tmp, noeud
Set xml = Server.CreateObject("MSXML2.DOMDocument")
tmp = "<reponse>"
For Each noeud In noeuds
tmp = tmp & noeud.xml
Next
tmp = tmp & "</reponse>"
xml.LoadXml tmp
Set creerXML = xml
End Function |
Du coup j'ai un petit souci pour un de mes traitements xml :
En gros j'ai un xml1
Code:
1 2 3 4 5
| <xml1>
<champA />
<champB>valeur B</champB>
<champC>valeur C</champC>
</xml1> |
et un xml2
Code:
1 2 3 4 5
| <xml2>
<parametreA>toto</parametreA>
<parametreB>tata</parametreB>
<parametreC>titi</parametreC>
</xml2> |
et j'aimerai obtenir le xml suivant en ajoutant dans le noeud champA le contenu du xml2, élément xml2 exclus :
Code:
1 2 3 4 5 6 7 8 9
| <xml1>
<champA>
<parametreA>toto</parametreA>
<parametreB>tata</parametreB>
<parametreC>titi</parametreC>
</champA>
<champB>valeur B</champB>
<champC>valeur C</champC>
</xml1> |
Quelqu'un saurait comment faire cela, j'ai essayé avec des replacechild, des appendchild, etc. sans succès, l'appendChild me permettant d'ajouter l'intégralité du xml2, balise xml2 inclus ?
PS : j'ai testé la génération de class par curiosité, je sais ajouter une référence web dans un projet de bibliothèque de class, mais comment générer la class ?