Vu le code XML suivant:VBScript, MSXML et espaces de noms
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetMsisdnResponse xmlns="http://my.domain.com/">
<GetMsisdnResult>
<RedirectUrl>http://my.domain.com/cw/DoIdentification.do2?sessionid=71de6551fc13e6625194</RedirectUrl>
</GetMsisdnResult>
</GetMsisdnResponse>
</soap:Body>
</soap:Envelope>
Je suis en train d'accéder à l'élément redirectUrl en utilisant XPath dans VBScript:
set xml = CreateObject("MSXML2.DOMDocument")
xml.async = false
xml.validateOnParse = false
xml.resolveExternals = false
xml.setProperty "SelectionLanguage", "XPath"
xml.setProperty "SelectionNamespaces", "xmlns:s='http://my.domain.com/' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'"
err.clear
on error resume next
xml.loadXML (xmlhttp.responseText)
if (err.number = 0) then
redirectUrl = xml.selectSingleNode("/soap:Envelope/soap:Body/s:GetMsisdnResponse/s:GetMsisdnResult/s:RedirectUrl").text
end if
mais il ne parvient pas à trouver le nœud redirectUrl, donc n'est rien quand j'essaye d'obtenir la propriété .text. Qu'est-ce que je fais de mal
@Xetius, puisque vous utilisez xmlhttp, pourquoi ne pas récupérer la propriété xmlhttp ReceivedXML qui retourne un DOMDocument? (Le serveur doit spécifier un type mime xml tel que text/xml dans l'en-tête Content-Type). – AnthonyWJones