Sample code for 30+ languages & platforms
Unicode C

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 Unicode C Downloads

Unicode C
#include <C_CkXmlW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkXmlW xSoapEnvelope;
    HCkXmlW xSoapBody;
    HCkXmlW xMessageBody;
    const wchar_t *soapMessageXml;

    success = FALSE;

    xSoapEnvelope = CkXmlW_Create();

    success = CkXmlW_LoadXmlFile(xSoapEnvelope,L"soapMessage.xml");
    if (success != TRUE) {
        wprintf(L"%s\n",CkXmlW_lastErrorText(xSoapEnvelope));
        CkXmlW_Dispose(xSoapEnvelope);
        return;
    }

    //  The root node is the SOAP envelope, and in this particular case has a Tag of "soapenv:Envelope"
    wprintf(L"SOAP envelope tag: %s\n",CkXmlW_tag(xSoapEnvelope));

    //  The SOAP body (in this case) is a direct child of the SOAP envelope
    //  and has the tag "soapenv:Body"
    xSoapBody = CkXmlW_FindChild(xSoapEnvelope,L"soapenv:Body");
    if (CkXmlW_getLastMethodSuccess(xSoapEnvelope) == FALSE) {
        wprintf(L"No direct child having the tag \"soapenv:Body\" was found.\n");
        CkXmlW_Dispose(xSoapEnvelope);
        return;
    }

    //  The SOAP message body is the direct child of the SOAP envelope body:
    xMessageBody = CkXmlW_FindChild(xSoapBody,L"TimbreFiscalDigital");
    if (CkXmlW_getLastMethodSuccess(xSoapBody) == FALSE) {
        wprintf(L"No direct child having the tag \"TimbreFiscalDigital\" was found.\n");
        CkXmlW_Dispose(xSoapBody);
        CkXmlW_Dispose(xSoapEnvelope);
        return;
    }

    //  If desired, get the XML of just the SOAP message body:
    soapMessageXml = CkXmlW_getXml(xSoapBody);

    CkXmlW_Dispose(xMessageBody);
    CkXmlW_Dispose(xSoapBody);

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


    CkXmlW_Dispose(xSoapEnvelope);

    }