You don't need to write the xml using the magento lib. Just make it a simple string. $collection = Mage::getModel('catalog/product')->getCollection(); $collection->addAttributeToSelect('*'); //add filters if needed. //$collection->addAttributeToFilter('status', 1); //for example. $padd = ' '; //4 spaces for identation $eol = "\n"; //end of line $xml = '<?xml version="1.0"?>'.$eol; $xml .= '<products>'.$eol; foreach ($collection as $product) { $xml .= $padd.'<product>'.$eol; $xml .= str_repeat($padd, 2).'<name>'.$product->getName().'</name>'.$eol; $xml .= str_repeat($padd, 2).'<description><![CDATA['.$product->getName().']]></description>'.$eol; $xml .= str_repeat($padd, 2).'<price><![CDATA['.$product->getFinalPrice().']]></price>'.$eol; //add here all the attributes you need to export $xml .= $padd.'</product>'.$eol; } $xml .= '</products>'.$eol; //Do something with $xml - save it in a file or echo it.