VBScript, MSXML et les espaces de noms

Donné le code XML suivant:

<?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'essayer d'accéder à la RedirectUrl élément à l'aide de 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 c'est à défaut de trouver la RedirectUrl nœud, par conséquent, n'est rien quand j'essaie d'obtenir de la .texte de la propriété. Ce que je fais mal

puisque vous utilisez xmlhttp pourquoi ne pas récupérer l'xmlhttp ReceivedXML propriété qui retourne un objet DOMDocument? (Le serveur doit spécifier un xml mime type: text/xml dans le header Content-Type).

OriginalL'auteur Xetius | 2009-07-29