I really can't see why this isn't working. Someone please point out what I'm doing wrong.

I really don't know why I struggle with this. I get some stuff to work and then try something similar and have to bang my head against the desk.

Please help.

PHP Code:
$output = $output.'<p><a target="_blank" href="'.$xml_link.'">XML link</a></p>';
$xml = simplexml_load_file($xml_link);
foreach ($xml as $geoname) {
$lat = $geoname->lat;
$lng = $geoname->lng;
$population = $geoname->population;
$latlon = $lat.','.$lng;

}
$output = $output.'<p>Population '.$population.'</p><p> Latitude /Longitude '.$latlon.'</p>';
XML I am parsing is:
<geoname>
<toponymName>San Javier</toponymName>
<name>San Javier</name>
<lat>37.76341</lat>
<lng>-0.77005</lng>
<geonameId>6359539</geonameId>
<countryCode>ES</countryCode>
<countryName>Spain</countryName>
<fcl>A</fcl>
<fcode>ADM3</fcode>
<fclName>country, state, region,...</fclName>
<fcodeName>third-order administrative division</fcodeName>
<population>31432</population>
<alternateNames/>
<elevation/>
<srtm3>-32768</srtm3>
<continentCode>EU</continentCode>
<adminCode1>31</adminCode1>
<adminName1>Murcia</adminName1>
<adminCode2>MU</adminCode2>
<adminName2>Murcia</adminName2>
<adminCode3>30035</adminCode3>
<adminName3>San Javier</adminName3>
<alternateName lang="link">http://en.wikipedia.org/wiki/San_Javier%2C_Murcia</alternateName><timezone dstOffset="2.0" gmtOffset="1.0">Europe/Madrid</timezone>
</geoname>