Arkadaşım bir önceki mesajımda nedenini söylemiştim, denemedin mi? Senin eklediğin linkin içinde ampersand olduğu için orada xml ayrıştırma hatası verir ve durur. Bunu döngüye sokmadan manuel olarak tek satır yazıp kontrol ederek de görebilirsin.
$xml_ciktisi .= "\n<url>\n<loc>http://www.siteadi.com</loc>\n<changefreq>daily</changefreq>\n<priority>1.00</priority>\n</url>";
$result = @mysql_query("SELECT id, link FROM jos_menu WHERE published='1' ORDER BY id DESC");
while (list($id, $link) = @mysql_fetch_row($result))
{
/*
//eğer ilk sayfada ki gibi kullanıyorsan:
//bu şekilde de yapabilirsin
$site_link = 'http://www.siteadi.com/'.$link.'&Itemid='.$id;
<loc>$site_link</loc>
*/
$link = str_replace('&','&',$link);
$xml_ciktisi .= "\n<url>\n<loc>http://www.siteadi.com/$link</loc>\n
<changefreq>weekly</changefreq>\n
<priority>0.50</priority>\n</url>";
};
echo $xml_ciktisi ."\n</urlset>";