2017-08-26 3 views
1

Wie Sie sehen können, habe ich einige andere Antworten hier auf Stackoverflow überprüft, aber ich bekomme nur leere Ergebnisse. Hier ist, was ich bisher habe:PHP simplexml_load_file nicht analysieren

$city = simplexml_load_file('http://api.openweathermap.org/data/2.5/weather?q=Tijuana&mode=xml&appid=12fcd235af3a27a895aecb26bc957055'); 

echo $city['current']['city']['name']; 
echo $city->current->city; 

Jede Hilfe wird sehr geschätzt.

+1

Versuchen Sie, diese 'echo (string) $ City-> Stadt [ "name"];' 'simplexml_load_string' oder' file' Wurzelelement zu ignorieren, die 'current' in Ihrem Fall ist –

+0

Eine letzte Frage: Sahil , Kann ich das Ergebnis für die erste Tasche aber nicht die zweite bekommen ... zum Beispiel: Feuchtigkeit ["Wert"]; $ wind_v = (string) $ base_clima-> wind ["geschwindigkeit"] ['wert']; >

<= 'Feuchtigkeit:'?..? $ Humedad '%'>

<= 'Windgeschwindigkeit:'?. $ wind_v .'Km/h '?>

+0

Ich verstehe nicht, welche zweite Tasche? –

Antwort

1

In Ihrem Code ändern diese:

$base_clima->wind["speed"]['value']; 

Dieses:

$base_clima->wind->speed['value']; 

Probedruck eines Objekts:

[wind] => SimpleXMLElement Object 
     (
      [speed] => SimpleXMLElement Object 
       (
        [@attributes] => Array 
         (
          [value] => 1.95 
          [name] => Light breeze 
         ) 

       ) 
     ) 

Für die Elemente eines Objekts zugreifen Du kannst uns e so etwas wie dieses $object->element1->element2 aber in simplexml_load_string/file@attributes kann als ein Array zugegriffen werden, so dass Sie es so verwenden können.

Versuchen Sie dies, hoffe dieser wird hilfreich sein.

$city = simplexml_load_file('http://api.openweathermap.org/data/2.5/weather?q=Tijuana&mode=xml&appid=12fcd235af3a27a895aecb26bc957055'); 
echo $humedad = (string)$city->humidity["value"]; 
echo $wind_v = (string)$city->wind->speed['value']; 
+1

Sie sind ein Genus! Vielen Dank. –

Verwandte Themen