Altova Mailing List Archives>Archive Index >comp.text.xml Archive Home >Recent entries >Thread Prev - what's so wrong with my code?? Just trying to save a single node out of a SOAP Envelope >Thread Next - Re: what's so wrong with my code?? Just trying to save a single node out of a SOAP Envelope Re: what's so wrong with my code?? Just trying to save a single node out of a SOAP EnvelopeTo: NULL Date: 8/8/2008 8:04:00 AM
<monsalvo@g...> wrote in message
news:36b652eb-52fb-4e8e-a022-9af51470c3a3@s......
> What's so wrong with my code?
>
> This line is part of a VBScript soap client part of a DTS wich is
> functional in a 90 percent.
>
> strText = .responseXML.selectSingleNode("//" login "loginReturn")
>
> Produces the following error
> Char: 46
> Error: Expeted )
>
> If I code it like this
> strText = .responseXML.selectSingleNode("//loginReturn")r
>
> I get this error..
> Char: 1
> Error: Object doesn't support this property or method
>
>
> If I Place ) in char 46 I get this error.
> Error is Expected end of Statement.
>
>
> I just want to extract a single node (loginReturn) out of the SOAP
> Envelope instead of saving the whole SOAP reponse. I'm able to save
> the full envelope to a file, but that is not what I want.
> It would be the same, what if I want to store the value of loginReturn
> in this case 481557228026 in a variable?
>
>
> Just in case what follows is the response envelop from my web service.
>
>
> <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">
> <soapenv:Body>
> <ns1:loginResponse soapenv:encodingStyle="http://
> schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://nn.nn.nn.com">
> <loginReturn xsi:type="xsd:string">481557228026</loginReturn>
> </ns1:loginResponse>
> </soapenv:Body>
> </soapenv:Envelope>
>
> Please forgive my ingnorance I'm totally a newcomer to XML and
> VBscript.
>
>
> Thanks in Advance.
>
>
> Martin
Neither expression is not syntactically correct.
You need, assuming you have mapped the namespace URIs to the prefixes
'soapenv' and 'ser' as per my earlier response):
Dim oLoginNode
Set oLoginNode =
.responseXML.selectSingleNode("/*/soapenv:Body/ser:loginResponse/ser:loginReturn")
MsgBox oLoginNode.text
or for a more inefficient search:
Set oLoginNode = .responseXML.selectSingleNode("//ser:loginReturn")
If you are using the responseXML directly you should call:
.responseXML.setproperty "SelectionLanguage", "XPath"
before using selectSingleNode or selectNodes.
--
Joe Fawcett (MVP - XML)
http://joe.fawcett.name
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
