Hallo liebe Community!
Ich habe ein kleines Problem:
Ich arbeite an einem System das Adressen in Längen und Breitengrade auflößt. Dazu benutze ich die Google Maps API. Diese schickt mir ein XML mit den Geologischen Informationen, die ich mit folgendem Code auslese:
§url="http://maps.google.com/maps/geo?q=$MEINEADRESSE&output=xml&key=$MEINKEY
$urlinhalt=file_get_contents($url);
//XML File utf8 konvertieren
$urlinhalt = utf8_decode ($urlinhalt);
//SimpleXMLElement Objekt erstellen
$xml = new SimpleXMLElement($urlinhalt);//-> Hier entsteht bei Manchen Adressen ein Fehler
if($xml){
//Koordinaten auslesen - trennen - und in 2 variablen speichern/Nachrichten speichern
$error = $xml->Response->Status->code;
if($error == "602"){$instantnachricht="Ihre Adresse wurde leider nicht gefunden!";}else{
list($instantlon, $instantlat, $altitude) = explode (",",$xml->Response->Placemark->Point->coordinates);
$instantnachricht="Für die Suche nach $adresse wurden folgende Ergebnisse gefunden:<br>";
}
Bei new SimpleXMLElement() Entsteht bei manchen Adressen(Antworten von Google) ein Fehler. z.B. bei dem Suchbegriff Köln... Diesen möchte ich nun mit einer Try Catch anweisung abfangen... Doch meine Versuche schlugen alle Fehl.
Meine Fehlermeldung:
Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: Entity: line 1: parser error : Opening and ending tag mismatch: SubAdministrativeAreaName line 1 and SubAdministrativeArea in /Applications/xampp/xamppfiles/htdocs/Take2/webseiten/2007/geocode/instantgeotagger.php on line 22
Ich dachte ich habe das letzte mal wirklich einen Fehler in der XML Datei gesehen. Doch wenn ich sie jetzt nocheinmal betrachte finde ich Keinen.
Auch wenn ihr einen Fehler in meinem Code findet wäre es natürlich noch besser.
Ich hoffe Ihr könnt mir dabei helfen.
MFG Explofish