<form action='' method='post'>
<input type='text' name='location'>
<input type='submit' name='submit'>
</form>
<?php
if(isset($_POST['submit']) && !empty($_POST['location'])) {
$input = $_POST['location'];
$url = 'http://api.openweathermap.org/data/2.5/forecast?q='.strtolower($input).'&mode=xml';
$xml = file_get_contents($url, false);
$xml = simplexml_load_string($xml);
echo '<b>Viewing Weather For:</b> '. $xml->location->name;
echo '<b>Temperature:</b> '. $xml->forecast->children('temperature')->attributes('value');
}
Weather API: http://api.openweathermap.org/data/2.5/forecast?q=london,uk&mode=xml
I am trying to get the value of the temperature
echo '<b>Temperature:</b> '. $xml->forecast->children('temperature')->attributes('value');
This is where im stuck
I would really appreciate your answers :)
To get the value
attribute of the first occurence of the temperature
node, do:
$result = $xml->forecast[0]->time[0]->temperature["value"];
To take <time>
into account, use xpath
:
$results = $xml->xpath("//time");
this will select all time
nodes, now loop:
foreach ($results as $result)
echo "temperature for $result[from] to $result[to]: {$result->temperature['value']}<br />";
see it working: http://codepad.viper-7.com/wuUbEv