Anyone know how I can create and save XML using PHP? I need something like this:
<jukebox>
  <track source="" artist="" album="" title="" />
  <track source="" artist="" album="" title="" />
  <track source="" artist="" album="" title="" />
  <track source="" artist="" album="" title="" />
</jukebox>
                Click File > Save As, and select the location where you want to save the file. , point to the arrow next to Save As, and then click Other Formats. In the File name box, type a name for the XML data file. In the Save as type list, click XML Data, and click Save.
php header('Content-type: text/xml'); header('Content-Disposition: attachment; filename="text. xml"'); echo $xml_contents; exit(); Otherwise you'll get the whole buffered page, not only the XML output. Show activity on this post.
If you run the XML file as a PHP script, then yes.
This is probably what you are looking for.
    //Creates XML string and XML document using the DOM 
    $dom = new DomDocument('1.0', 'UTF-8'); 
    //add root
    $root = $dom->appendChild($dom->createElement('Root'));
    //add NodeA element to Root
    $nodeA = $dom->createElement('NodeA');
    $root->appendChild($nodeA);
    // Appending attr1 and attr2 to the NodeA element
    $attr = $dom->createAttribute('attr1');
    $attr->appendChild($dom->createTextNode('some text'));
    $nodeA->appendChild($attr);
/*
** insert more nodes
*/
    $dom->formatOutput = true; // set the formatOutput attribute of domDocument to true
    // save XML as string or file 
    $test1 = $dom->saveXML(); // put string in test1
    $dom->save('test1.xml'); // save as file
For more information, have a look at the DOM Documentation.
To do what you want:
    //Creates XML string and XML document using the DOM 
    $dom = new DomDocument('1.0', 'UTF-8'); 
    //add root == jukebox
    $jukebox = $dom->appendChild($dom->createElement('jukebox'));
    for ($i = 0; $i < count($arrayWithTracks); $i++) {
        //add track element to jukebox
        $track = $dom->createElement('track');
        $jukebox->appendChild($track);
        // Appending attributes to track
        $attr = $dom->createAttribute('source');
        $attr->appendChild($dom->createTextNode($arrayWithTracks[$i]['source']));
        $track->appendChild($attr);
        $attr = $dom->createAttribute('artist');
        $attr->appendChild($dom->createTextNode($arrayWithTracks[$i]['artist']));
        $track->appendChild($attr);
        $attr = $dom->createAttribute('album');
        $attr->appendChild($dom->createTextNode($arrayWithTracks[$i]['album']));
        $track->appendChild($attr);
        $attr = $dom->createAttribute('title');
        $attr->appendChild($dom->createTextNode($arrayWithTracks[$i]['title']));
        $track->appendChild($attr);
    }
    $dom->formatOutput = true; // set the formatOutput attribute of domDocument to true
    // save XML as string or file 
    $test1 = $dom->saveXML(); // put string in test1
    $dom->save('test1.xml'); // save as file
Cheers
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With