Sample code for 30+ languages & platforms
Xbase++

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 Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oXml
LOCAL oPdfElement

nSuccess := 0

oXml := CreateObject("Chilkat.Xml")

nSuccess := oXml:LoadXmlFile("qa_data/soap/soapWithPdf.xml")
IF (nSuccess != 1)
    ? oXml:LastErrorText
    oXml:destroy()
    RETURN
ENDIF

//  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>

oPdfElement := oXml:FindChild("s:Body|ObtenerPDFResponse|ObtenerPDFResult|a:PDF")
IF (oXml:LastMethodSuccess != 1)
    ? "Did not find the PDF element at the expected location."
    oXml:destroy()
    RETURN
ENDIF

nSuccess := oPdfElement:SaveBinaryContent("qa_output/out.pdf", 0, 0, "")
IF (nSuccess != 1)
    ? oXml:LastErrorText
    oXml:destroy()
    RETURN
ENDIF

? "Successfully extracted and saved the PDF."

oXml:destroy()