Para crear el archivo prueba con file_put_contents()
Código:
$contenido = "....";
file_put_contents("tuArchivo.xml", $contenido);
Para enzipearlo
Código:
$dst = "ruta donde hayas creado el documento anterior (el xml)";
$command = "cd ".$dst."; nice -n19 zip -r0 ./nombreFinalArchivo.zip *";
exec($command);
No es una solución muy elegante, ya que solo te funcionará sobre server apache... pero bueno, quizás te valga.