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

C
#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);

    }