Heim  >  Artikel  >  Backend-Entwicklung  >  php对xml的操作非常简单,急

php对xml的操作非常简单,急

WBOY
WBOYOriginal
2016-06-23 13:58:05761Durchsuche

http://api.map.baidu.com/telematics/v3/weather?location=北京&output=xml&ak=gfPnxaaiPyNIhM7c3eZ1kmEL

这个得到XML 如何把currentCity节点的值赋给$city,循环检索weather_data下的所有节点,赋值给数组 -》$date ,给$dayPictureUrl。 


回复讨论(解决方案)

大神在哪里啊

$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 ';' 

我的代码都是经实测验证的!
不然也贴不出结果来

我的代码都是经实测验证的!
不然也贴不出结果来

不要发怒嘛,我这边就是这个错误啊,貌似是括号有问题

我的代码都是经实测验证的!
不然也贴不出结果来

OK了,貌似要分开写的不能直接echo $city = $xml->xpath('//currentCity')[0];

可以这样
 $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℃) ) 
应该周六,周日都出来的啊

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn