First you'd probably want to get the basic dynamic image creation done. Simple steps first.
Here is an example of a random-quotes script (left a ton of comments in, hopefully they will help):
// Path to our font file
$font = '/path/to/fonts/arial.ttf';
$fontsize = 12;
// array of random quotes
$quotes = array(
"hurr",
"durr",
"gurr");
// generate a random number with range of # of array elements
$pos = rand(0,count($quotes)-1);
// get the quote and word wrap it
$quote = wordwrap($quotes[$pos],50);
header("Content-type: image/png"); //Picture Format
header("Expires: Mon, 01 Jul 2003 00:00:00 GMT"); // Past date
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // Consitnuously modified
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Pragma: no-cache"); // NO CACHE
/*image generation code*/
//create Image of size 350px x 75px
$dims = imagettfbbox($fontsize, 0, $font, $quote);
$width = $dims[4] - $dims[6]; // upper-right x minus upper-left x
$height = $dims[3] - $dims[5]; // lower-right y minus upper-right y
$bg = imagecreatetruecolor($width, $height);
//This will make it transparent
imagesavealpha($bg, true);
$trans_colour = imagecolorallocatealpha($bg, 0, 0, 0, 127);
imagefill($bg, 0, 0, $trans_colour);
//Text to be written
// White text
$white = imagecolorallocate($bg, 255, 255, 255);
// Grey Text
$grey = imagecolorallocate($bg, 128, 128, 128);
// Black Text
$black = imagecolorallocate($bg, 0,0,0);
//Writes text to the image using fonts using FreeType 2
imagettftext($bg, $fontsize, 0, 0, 12, $grey, $font, $quote);
//Create image
imagepng($bg);
//destroy image
ImageDestroy($bg);
?>
Preview (using different stupid quotes).
That should help a lot. You now just need to find a simple method of parsing the XML data. Most of the major work (image creation) is pretty much exampled above.
Good luck, hope I helped a bit.