Generate XML

XML files are used for various functionalities.

We can develop XML files by using PHP.

If you have to develop very small project, you can use XML files for saving data instead of MySQL or any other databse with PHP, which will be easy for maintaining and response time will be reduced.

I am listing a simple example.


$doc = new DOMDocument();

$doc->formatOutput = true;

//$p = new domElement('products');

$p = $doc->createElement( "products" );

$doc->appendChild( $p );

$c = $doc->createElement( "product" ); 

$c->setAttribute("id", 1);

$t = $doc->createElement( "title" );

$c->appendChild( $t );	

$t->nodeValue =htmlentities('bike');	

$r = $doc->createElement( "reviews" );

$c->appendChild( $r );

$re = $doc->createElement( "review" ); 

$re->setAttribute("id", 'r1');

$t = $doc->createElement( "title" );

$re->appendChild( $t );	

$t->nodeValue = "hello this is for testing";

$t = $doc->createElement( "desc" );

$re->appendChild( $t );	

$tmp = mb_convert_encoding("<b>test description</b>",'UTF-8','ISO-8859-1');	

$t->nodeValue = $tmp;

$t = $doc->createElement( "rating" );

$re->appendChild( $t );	

$t->nodeValue = 5;

$r->appendChild( $re );

$p->appendChild( $c );

//for saving file in directory



$flag = $doc->save('xml/products.xml');



echo 'Products XML generated successfully';



//for displaying



header("Content-Type: text/xml; charset=utf-8");

echo $doc->saveXML();	


//for downloading file



header("Pragma: public");

header("Expires: 0");

header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

header("Cache-Control: private",false);

header ("Content-Type: application/xml;");

header("Content-Disposition: attachment; filename=products.xml;"); 

echo $doc->saveXML();



In the above example I have used three ways for getting the XML file

1) You can save the generated XML in server (http://yoururl/filename.php?f=s).

2) Display the XML in the browser (http://yoururl/filename.php?f=d)

3) Popup for downloading the XML (http://yoururl/filename.php?f=a)

One Response to “Generate XML”

  1. Joellex says:

    Perfect, thanks. Do you use lots of Magento themes? My company used a few that did a great deal to help to speed up page response times. It took a few months to get right and function to our needs but now it’s perfect. Saved hundreds on webserver costs by having it in a cloud vps. Thanks, Joellex.

Leave a Reply