Sample code for 30+ languages & platforms
Objective-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 Objective-C Downloads

Objective-C
#import <CkoXml.h>
#import <NSString.h>

BOOL success = NO;

CkoXml *xSoapEnvelope = [[CkoXml alloc] init];

success = [xSoapEnvelope LoadXmlFile: @"soapMessage.xml"];
if (success != YES) {
    NSLog(@"%@",xSoapEnvelope.LastErrorText);
    return;
}

//  The root node is the SOAP envelope, and in this particular case has a Tag of "soapenv:Envelope"
NSLog(@"%@%@",@"SOAP envelope tag: ",xSoapEnvelope.Tag);

//  The SOAP body (in this case) is a direct child of the SOAP envelope
//  and has the tag "soapenv:Body"
CkoXml *xSoapBody = [xSoapEnvelope FindChild: @"soapenv:Body"];
if (xSoapEnvelope.LastMethodSuccess == NO) {
    NSLog(@"%@",@"No direct child having the tag \"soapenv:Body\" was found.");
    return;
}

//  The SOAP message body is the direct child of the SOAP envelope body:
CkoXml *xMessageBody = [xSoapBody FindChild: @"TimbreFiscalDigital"];
if (xSoapBody.LastMethodSuccess == NO) {
    NSLog(@"%@",@"No direct child having the tag \"TimbreFiscalDigital\" was found.");

    return;
}

//  If desired, get the XML of just the SOAP message body:
NSString *soapMessageXml = [xSoapBody GetXml];

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