DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoXSoapEnvelope
Variant vXSoapBody
Handle hoXSoapBody
Variant vXMessageBody
Handle hoXMessageBody
String sSoapMessageXml
String sTemp1
Boolean bTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatXml)) To hoXSoapEnvelope
If (Not(IsComObjectCreated(hoXSoapEnvelope))) Begin
Send CreateComObject of hoXSoapEnvelope
End
Get ComLoadXmlFile Of hoXSoapEnvelope "soapMessage.xml" To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoXSoapEnvelope To sTemp1
Showln sTemp1
Procedure_Return
End
// The root node is the SOAP envelope, and in this particular case has a Tag of "soapenv:Envelope"
Get ComTag Of hoXSoapEnvelope To sTemp1
Showln "SOAP envelope tag: " sTemp1
// The SOAP body (in this case) is a direct child of the SOAP envelope
// and has the tag "soapenv:Body"
Get ComFindChild Of hoXSoapEnvelope "soapenv:Body" To vXSoapBody
If (IsComObject(vXSoapBody)) Begin
Get Create (RefClass(cComChilkatXml)) To hoXSoapBody
Set pvComObject Of hoXSoapBody To vXSoapBody
End
Get ComLastMethodSuccess Of hoXSoapEnvelope To bTemp1
If (bTemp1 = False) Begin
Showln 'No direct child having the tag "soapenv:Body" was found.'
Procedure_Return
End
// The SOAP message body is the direct child of the SOAP envelope body:
Get ComFindChild Of hoXSoapBody "TimbreFiscalDigital" To vXMessageBody
If (IsComObject(vXMessageBody)) Begin
Get Create (RefClass(cComChilkatXml)) To hoXMessageBody
Set pvComObject Of hoXMessageBody To vXMessageBody
End
Get ComLastMethodSuccess Of hoXSoapBody To bTemp1
If (bTemp1 = False) Begin
Showln 'No direct child having the tag "TimbreFiscalDigital" was found.'
Send Destroy of hoXSoapBody
Procedure_Return
End
// If desired, get the XML of just the SOAP message body:
Get ComGetXml Of hoXSoapBody To sSoapMessageXml
Send Destroy of hoXMessageBody
Send Destroy of hoXSoapBody
// --------------------------------------------------------------------------------
// Also see Chilkat's Online WSDL Code Generator
// to generate code and SOAP Request and Response XML for each operation in a WSDL.
// --------------------------------------------------------------------------------
End_Procedure