xmlDoc = new DOMDocument(); $this->xmlDoc->load($xml); } /* * get link/description/title * eleminate the unwnate char repalceing HTML char */ function replaceHTMLCharacter($str) { $str = preg_replace('/&/', '&', $str); $str = preg_replace('//', '>', $str); $str = preg_replace('/\"/', '"', $str); $str = preg_replace('/\'/', ''', $str); return $str; } // get header only function getHeader() { $channel = $this->xmlDoc->getElementsByTagName('channel')->item(0); // get channel title $channel_title = $channel->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue; $item_title = $this->replaceHTMLCharacter($item_title); // get channel link $channel_link = $channel->getElementsByTagName('link')->item(0)->childNodes->item(0)->nodeValue; $channel_link = $this->replaceHTMLCharacter($channel_link); // get channel description $channel_desc = $channel->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue; $channel_desc = $this->replaceHTMLCharacter($channel_desc); //return header return ' '.$channel_title.' '.$channel_desc.' '.$channel_link.' en-us'; } // main body of xml file here generate function getBody() { $strBody= ""; //get and output "" elements $x= $this->xmlDoc->getElementsByTagName('item'); //loop will continue untill out site's xml file has finished for ($i=0; $i<$x->length; $i++) { //get title $item_title = $x->item($i)->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue; $item_title = $this->replaceHTMLCharacter($item_title); //get link $item_link = $x->item($i)->getElementsByTagName('link')->item(0)->childNodes->item(0)->nodeValue; $item_link = $this->replaceHTMLCharacter($item_link); //get description $item_desc = $x->item($i)->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue; $item_desc = $this->replaceHTMLCharacter($item_desc); $strBody= $strBody . ''.$item_title.' '.$item_desc.' '.$item_link.' '.$item_link.' '; } //return main body of xml file return $strBody; } //return footer function getFooter() { return ""; } //write all data in xml file function generateXMLFile() { $handle = fopen("feed.xml", "w"); fwrite($handle , $this->getHeader()); fwrite($handle , $this->getBody()); fwrite($handle , $this->getFooter()); fclose($handle); } }// end of class //create object $feedApp =new feedGenerator("http://rss.msnbc.msn.com/id/3032091/device/rss/rss.xml"); //write on xml file $feedApp->generateXMLFile(); header('location:feed.xml'); exit(); ?>