C
C
Extract and Save PDF from SOAP XML
See more XML Examples
Demonstrates how to extract and save PDF file that is embedded in SOAP XML (or any XML).Chilkat C Downloads
#include <C_CkXml.h>
void ChilkatSample(void)
{
BOOL success;
HCkXml xml;
HCkXml pdfElement;
success = FALSE;
xml = CkXml_Create();
success = CkXml_LoadXmlFile(xml,"qa_data/soap/soapWithPdf.xml");
if (success != TRUE) {
printf("%s\n",CkXml_lastErrorText(xml));
CkXml_Dispose(xml);
return;
}
// The XML we loaded looks like this:
// <?xml version="1.0" encoding="utf-8" ?>
// <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
// <s:Body>
// <ObtenerPDFResponse xmlns="http://xyz.org/">
// <ObtenerPDFResult xmlns:a="http://schemas.xyz.org/something" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
// <a:CBB i:nil="true" />
// <a:CodigoConfirmacion i:nil="true" />
// <a:ErrorDetallado />
// <a:ErrorGeneral i:nil="true" />
// <a:FechaGenerada i:nil="true" />
// <a:FolioGenerado i:nil="true" />
// <a:OperacionExitosa>true</a:OperacionExitosa>
// <a:PDF>JVBERi0xLjQKJe...</a:PDF>
// <a:XML i:nil="true" />
// </ObtenerPDFResult>
// </ObtenerPDFResponse>
// </s:Body>
// </s:Envelope>
pdfElement = CkXml_FindChild(xml,"s:Body|ObtenerPDFResponse|ObtenerPDFResult|a:PDF");
if (CkXml_getLastMethodSuccess(xml) != TRUE) {
printf("Did not find the PDF element at the expected location.\n");
CkXml_Dispose(xml);
return;
}
success = CkXml_SaveBinaryContent(pdfElement,"qa_output/out.pdf",FALSE,FALSE,"");
if (success != TRUE) {
printf("%s\n",CkXml_lastErrorText(xml));
CkXml_Dispose(xml);
return;
}
printf("Successfully extracted and saved the PDF.\n");
CkXml_Dispose(xml);
}