-3

从 openweathermap 获取天气数据失败。这是我的代码:

$xml = new 
SimpleXMLElement(file_get_contents('http://api.openweathermap.org/data/2.5/weather?q=london&mode=xml'));
$country = $xml->code->country;
$city = $xml->code->city;
echo "Country: $country<br/>City: $city"; 

当我回声时,我什么也得不到。帮助表示赞赏!

4

2 回答 2

3

国家和城市价值观的正确路径如下:

$country = $xml->city->country;
$city = $xml->city['name'];

您可能还需要删除 URL 中的空格,因此完整的代码如下所示:

$xml = new SimpleXMLElement(file_get_contents('http://api.openweathermap.org/data/2.5/weather?q=london&mode=xml'));
$country = $xml->city->country;
$city = $xml->city['name'];
echo "Country: $country<br/>City: $city"; 

您可能想快速浏览一下SimpleXML 的基本用法

于 2013-07-13T19:25:22.493 回答
0

您错过了所有错误消息,也没有错过在继续继续之前检查函数返回值:

警告:file_get_contents(http://api.openweathermap.org/data/2.5/weather?q=london&mode=xml):打开流失败:HTTP 请求失败!HTTP/1.1 400 BAD_REQUEST

这意味着您的 HTTP 请求失败,因为它是一个错误的请求。检查 URI 是否正确。如果是这样,请联系 API 服务提供商以获取您的支持选项。

致命错误:未捕获的异常“异常”,消息“字符串无法解析为 XML”

您的脚本有一个致命错误。它不仅不输出任何东西,甚至在到达预定结束之前就停下来了。那是因为您认为一切都必须始终有效。相反,还要检查错误消息。

这已在此处的上一个问题中进行了概述:

于 2013-07-14T09:26:27.377 回答