SimpleXML子元素属性

<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