Zig
Zig
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 Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
const x_soap_envelope = try chilkat.Xml.init();
defer x_soap_envelope.deinit();
x_soap_envelope.loadXmlFile("soapMessage.xml") catch {
std.debug.print("{s}\n", .{try x_soap_envelope.getLastErrorText(alloc)});
return;
};
// The root node is the SOAP envelope, and in this particular case has a Tag of "soapenv:Envelope"
std.debug.print("SOAP envelope tag: {s}\n", .{try x_soap_envelope.getTag(alloc)});
// The SOAP body (in this case) is a direct child of the SOAP envelope
// and has the tag "soapenv:Body"
const x_soap_body = x_soap_envelope.findChild("soapenv:Body") catch {
std.debug.print("No direct child having the tag \"soapenv:Body\" was found.\n", .{});
return;
};
defer x_soap_body.deinit();
// The SOAP message body is the direct child of the SOAP envelope body:
const x_message_body = x_soap_body.findChild("TimbreFiscalDigital") catch {
std.debug.print("No direct child having the tag \"TimbreFiscalDigital\" was found.\n", .{});
return;
};
defer x_message_body.deinit();
// If desired, get the XML of just the SOAP message body:
_ = try x_soap_body.getXml(alloc);
// --------------------------------------------------------------------------------
// Also see Chilkat's Online WSDL Code Generator
// to generate code and SOAP Request and Response XML for each operation in a WSDL.
// --------------------------------------------------------------------------------
}