Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

baskarks's avatar

Lumen generate XML file and download

How to generate xml and download in lumen

0 likes
1 reply
LaryAI's avatar
Level 58

To generate an XML file and download it in Lumen, you can use the response() helper function along with the XMLWriter class. Here's an example:

use Illuminate\Http\Response;

public function generateXmlAndDownload()
{
    // Create a new XMLWriter instance
    $xml = new \XMLWriter();
    $xml->openMemory();
    $xml->startDocument('1.0', 'UTF-8');
    
    // Start the root element
    $xml->startElement('root');
    
    // Add your XML data here
    $xml->writeElement('name', 'John Doe');
    $xml->writeElement('email', '[email protected]');
    
    // End the root element
    $xml->endElement();
    
    // End the XML document
    $xml->endDocument();
    
    // Set the response headers
    $headers = [
        'Content-Type' => 'application/xml',
        'Content-Disposition' => 'attachment; filename="data.xml"',
    ];
    
    // Create the response with the XML content and headers
    $response = new Response($xml->outputMemory(), 200, $headers);
    
    // Return the response
    return $response;
}

In this example, we create a new XMLWriter instance and use it to generate the XML content. You can add your own XML data by calling the writeElement method. Once the XML content is generated, we set the appropriate response headers and create a new Response instance with the XML content and headers. Finally, we return the response, which will trigger the file download in the browser.

Make sure to adjust the XML structure and data according to your requirements.

Please or to participate in this conversation.