0
<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');

}

天气 API:http ://api.openweathermap.org/data/2.5/forecast?q=london,uk&mode=xml

我正在尝试获取温度的值

echo '<b>Temperature:</b> '. $xml->forecast->children('temperature')->attributes('value');

这就是我卡住的地方

我真的很感激你的回答:)

4

1 回答 1

0

要获取节点value第一次出现的属性,请执行以下操作:temperature

$result = $xml->forecast[0]->time[0]->temperature["value"];

要考虑<time>到,请使用xpath

$results = $xml->xpath("//time");

这将选择所有time节点,现在循环:

foreach ($results as $result)
    echo "temperature for $result[from] to $result[to]: {$result->temperature['value']}<br />";

看到它工作:http ://codepad.viper-7.com/wuUbEv

于 2013-08-12T23:25:51.457 回答