Try to do this:
$replaceData = array(
'%userName%' => $order->getUserFullName(),
'%userEmail%' => $order->getUserEmail(),
'%userPhone%' => $order->getUserPhone(),
'%userDeliver%' => $order->getUserDeliverTo(),
'%orderId%' => $order->getId(),
'%orderKey%' => $order->getKey(),
'%orderLink%' => shop_url('cart/view/' . $order->getKey()),
);
$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($replaceData, array ($xml, 'addChild'));
print $xml->asXML();
Correction, try this to save as xml
//Save as xml
$doc = new DOMDocument('1.0');
$doc->formatOutput = true;
$root = $doc->createElement('root');
$root = $doc->appendChild($root);
foreach($replaceData as $key=>$value)
{
$em = $doc->createElement($key);
$text = $doc->createTextNode($value);
$em->appendChild($text);
$root->appendChild($em);
}
$doc->save('file.xml');