Sample code for 30+ languages & platforms
Lua

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 Lua Downloads

Lua
local chilkat = require("chilkat")

local xml = chilkat.Xml.new()

local success = xml:load_xml_file("qa_data/soap/soapWithPdf.xml")
if not success then
    print(xml.last_error_text)
    return
end

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

local pdfElement = xml:find_child("s:Body|ObtenerPDFResponse|ObtenerPDFResult|a:PDF")
if not xml.last_method_success then
    print("Did not find the PDF element at the expected location.")
    return
end

success = pdfElement:save_binary_content("qa_output/out.pdf", false, false, "")
if not success then
    print(xml.last_error_text)
    return
end

print("Successfully extracted and saved the PDF.")