$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"
}

解决方案 »

  1.   

    Parse error: syntax error, unexpected '[', expecting ',' or ';' 
      

  2.   

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

  3.   

    那是你的问题呀
    再说,错误信息也得贴全了吧,不然别人如何判断问题所在?想来是你的 php 版本太低了
    $city = $xml->xpath('//currentCity')[0];
    改为
    $city = current($xml->xpath('//currentCity'));
      

  4.   

    foreach($xml->xpath('//weather_data') as $r) {
    $date = (array)$r->date;
    print_r($date);
    }
    这样子写的话为什么只有一行数据北京
    2014-04-25
    Array ( [0] => 周五(今天, 实时:24℃) ) 
    应该周六,周日都出来的啊