Home » Php » Create new XML file and write data to it?

Create new XML file and write data to it?

Posted by: admin November 30, 2017 Leave a comment


I need to create a new XML file and write that to my server. So, I am looking for the best way to create a new XML file, write some base nodes to it, save it. Then open it again and write more data.

I have been using file_put_contents() to save the file. But, to create a new one and write some base nodes I am not sure of the best method.



DOMDocument is a great choice. It’s a module specifically designed for creating and manipulating XML documents. You can create a document from scratch, or open existing documents (or strings) and navigate and modify their structures.

$xml = new DOMDocument();
$xml_album = $xml->createElement("Album");
$xml_track = $xml->createElement("Track");
$xml_album->appendChild( $xml_track );
$xml->appendChild( $xml_album );


To re-open and write:

$xml = new DOMDocument();
$nodes = $xml->getElementsByTagName('Album') ;
if ($nodes->length > 0) {
   //insert some stuff using appendChild()



PHP has several libraries for XML Manipulation.

The Document Object Model (DOM) approach (which is a W3C standard and should be familiar if you’ve used it in other environments such as a Web Browser or Java, etc). Allows you to create documents as follows

    $doc = new DOMDocument( );
    $ele = $doc->createElement( 'Root' );
    $ele->nodeValue = 'Hello XML World';
    $doc->appendChild( $ele );

Even if you haven’t come across the DOM before, it’s worth investing some time in it as the model is used in many languages/environments.


With FluidXML you can generate and store an XML document very easily.

$doc = fluidxml();

$doc->add('Album', true)
        ->add('Track', 'Track Title');


Loading a document from a file is equally simple.

$doc = fluidify('album.xml');

        ->attr('id', 123);