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

Unicode C++
#include <CkXmlW.h>

void ChilkatSample(void)
    {
    bool success = false;

    CkXmlW xml;

    success = xml.LoadXmlFile(L"qa_data/soap/soapWithPdf.xml");
    if (success != true) {
        wprintf(L"%s\n",xml.lastErrorText());
        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>

    CkXmlW *pdfElement = xml.FindChild(L"s:Body|ObtenerPDFResponse|ObtenerPDFResult|a:PDF");
    if (xml.get_LastMethodSuccess() != true) {
        wprintf(L"Did not find the PDF element at the expected location.\n");
        return;
    }

    success = pdfElement->SaveBinaryContent(L"qa_output/out.pdf",false,false,L"");
    if (success != true) {
        wprintf(L"%s\n",xml.lastErrorText());
        return;
    }

    wprintf(L"Successfully extracted and saved the PDF.\n");
    }