Sample code for 30+ languages & platforms
Lianja

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 Lianja Downloads

Lianja
llSuccess = .F.

loXSoapEnvelope = createobject("CkXml")

llSuccess = loXSoapEnvelope.LoadXmlFile("soapMessage.xml")
if (llSuccess <> .T.) then
    ? loXSoapEnvelope.LastErrorText
    release loXSoapEnvelope
    return
endif

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

// The SOAP body (in this case) is a direct child of the SOAP envelope
// and has the tag "soapenv:Body"
loXSoapBody = loXSoapEnvelope.FindChild("soapenv:Body")
if (loXSoapEnvelope.LastMethodSuccess = .F.) then
    ? 'No direct child having the tag "soapenv:Body" was found.'
    release loXSoapEnvelope
    return
endif

// The SOAP message body is the direct child of the SOAP envelope body:
loXMessageBody = loXSoapBody.FindChild("TimbreFiscalDigital")
if (loXSoapBody.LastMethodSuccess = .F.) then
    ? 'No direct child having the tag "TimbreFiscalDigital" was found.'
    release loXSoapBody
    release loXSoapEnvelope
    return
endif

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

release loXMessageBody
release loXSoapBody

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


release loXSoapEnvelope