>  기사  >  백엔드 개발  >  php对xml的操作非常简单,急

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

WBOY
WBOY원래의
2016-06-23 13:58:05761검색

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.