php对xml的操作非常简单,急
程序员文章站
2024-02-06 15:49:10
...
http://api.map.baidu.com/telematics/v3/weather?location=北京&output=xml&ak=gfPnxaaiPyNIhM7c3eZ1kmEL
这个得到XML 如何把currentCity节点的值赋给$city,循环检索weather_data下的所有节点,赋值给数组
回复讨论(解决方案)
大神在哪里啊
$url = 'http://api.map.baidu.com/telematics/v3/weather?location=北京&output=xml&ak=gfPnxaaiPyNIhM7c3eZ1kmEL';$xml = simplexml_load_file($url);echo $city = $xml->xpath('//currentCity')[0];foreach($xml->xpath('//weather_data') as $r) { $date = (array)$r->date; $dayPictureUrl = (array)$r->dayPictureUrl;}var_dump($city, $date, $dayPictureUrl);
北京object(SimpleXMLElement)#2 (0) {}array(4) { [0]=> string(30) "周五(今天, 实时:24℃)" [1]=> string(6) "周六" [2]=> string(6) "周日" [3]=> string(6) "周一"}array(4) { [0]=> string(57) "http://api.map.baidu.com/images/weather/day/leizhenyu.png" [1]=> string(51) "http://api.map.baidu.com/images/weather/day/yin.png" [2]=> string(52) "http://api.map.baidu.com/images/weather/day/qing.png" [3]=> string(52) "http://api.map.baidu.com/images/weather/day/qing.png"}
$url = 'http://api.map.baidu.com/telematics/v3/weather?location=北京&output=xml&ak=gfPnxaaiPyNIhM7c3eZ1kmEL';$xml = simplexml_load_file($url);echo $city = $xml->xpath('//currentCity')[0];foreach($xml->xpath('//weather_data') as $r) { $date = (array)$r->date; $dayPictureUrl = (array)$r->dayPictureUrl;}var_dump($city, $date, $dayPictureUrl);
北京object(SimpleXMLElement)#2 (0) {}array(4) { [0]=> string(30) "周五(今天, 实时:24℃)" [1]=> string(6) "周六" [2]=> string(6) "周日" [3]=> string(6) "周一"}array(4) { [0]=> string(57) "http://api.map.baidu.com/images/weather/day/leizhenyu.png" [1]=> string(51) "http://api.map.baidu.com/images/weather/day/yin.png" [2]=> string(52) "http://api.map.baidu.com/images/weather/day/qing.png" [3]=> string(52) "http://api.map.baidu.com/images/weather/day/qing.png"}Parse error: syntax error, unexpected '[', expecting ',' or ';'
我的代码都是经实测验证的!
不然也贴不出结果来
我的代码都是经实测验证的!
不然也贴不出结果来
我的代码都是经实测验证的!
不然也贴不出结果来
可以这样
$city = $xml->xpath('//currentCity');
echo $city[0];
那是你的问题呀
再说,错误信息也得贴全了吧,不然别人如何判断问题所在?
想来是你的 php 版本太低了
$city = $xml->xpath('//currentCity')[0];
改为
$city = current($xml->xpath('//currentCity'));
那是你的问题呀
再说,错误信息也得贴全了吧,不然别人如何判断问题所在?
想来是你的 php 版本太低了
$city = $xml->xpath('//currentCity')[0];
改为
$city = current($xml->xpath('//currentCity'));
foreach($xml->xpath('//weather_data') as $r) {$date = (array)$r->date;print_r($date);}
这样子写的话为什么只有一行数据北京
2014-04-25
Array ( [0] => 周五(今天, 实时:24℃) )
应该周六,周日都出来的啊