Sample code for 30+ languages & platforms
PowerBuilder

Access SOAP Body XML

Demonstrates how to access the SOAP body in XML.
<?xml version="1.0" encoding="utf-8" ?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cfdi="http://www.sat.gob.mx/cfd/3">
    <soapenv:Body>
        <tfd:TimbreFiscalDigital version="1.0" />
    </soapenv:Body>
</soapenv:Envelope>

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_XSoapEnvelope
oleobject loo_XSoapBody
oleobject loo_XMessageBody
string ls_SoapMessageXml

li_Success = 0

loo_XSoapEnvelope = create oleobject
li_rc = loo_XSoapEnvelope.ConnectToNewObject("Chilkat.Xml")
if li_rc < 0 then
    destroy loo_XSoapEnvelope
    MessageBox("Error","Connecting to COM object failed")
    return
end if

li_Success = loo_XSoapEnvelope.LoadXmlFile("soapMessage.xml")
if li_Success <> 1 then
    Write-Debug loo_XSoapEnvelope.LastErrorText
    destroy loo_XSoapEnvelope
    return
end if

// The root node is the SOAP envelope, and in this particular case has a Tag of "soapenv:Envelope"
Write-Debug "SOAP envelope tag: " + loo_XSoapEnvelope.Tag

// The SOAP body (in this case) is a direct child of the SOAP envelope
// and has the tag "soapenv:Body"
loo_XSoapBody = loo_XSoapEnvelope.FindChild("soapenv:Body")
if loo_XSoapEnvelope.LastMethodSuccess = 0 then
    Write-Debug "No direct child having the tag ~"soapenv:Body~" was found."
    destroy loo_XSoapEnvelope
    return
end if

// The SOAP message body is the direct child of the SOAP envelope body:
loo_XMessageBody = loo_XSoapBody.FindChild("TimbreFiscalDigital")
if loo_XSoapBody.LastMethodSuccess = 0 then
    Write-Debug "No direct child having the tag ~"TimbreFiscalDigital~" was found."
    destroy loo_XSoapBody
    destroy loo_XSoapEnvelope
    return
end if

// If desired, get the XML of just the SOAP message body:
ls_SoapMessageXml = loo_XSoapBody.GetXml()

destroy loo_XMessageBody
destroy loo_XSoapBody

// --------------------------------------------------------------------------------
// Also see Chilkat's Online WSDL Code Generator
// to generate code and SOAP Request and Response XML for each operation in a WSDL.
// --------------------------------------------------------------------------------


destroy loo_XSoapEnvelope