what's so wrong with my code?? Just trying to save a single node outof a SOAP Envelope

M

monsalvo

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
 
J

Joe Fawcett

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.
 
M

monsalvo

Thanks a lot Joe!!
I'll figuring things out. Wanna get your book on XML here in
Argentina. They have it listed. Though delivery will take some 45
days.

Regards.

Martin
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,901
Latest member
Noble71S45

Latest Threads

Top