Php 使用SimpleXML解析XML不会返回任何结果

Php 使用SimpleXML解析XML不会返回任何结果,php,simplexml,Php,Simplexml,我目前正试图解析MapQuest流量API,但当我试图显示事件时,什么都不会出现,如果我在php中执行“if empty”,它将返回空 代码如下: <?php $mysongs = simplexml_load_file("http://www.mapquestapi.com/traffic/v1/incidents?key=Fmjtd%7Cluuan1u2nh%2C2a%3Do5-96rw5u&callback=handleIncidentsResponse&am

我目前正试图解析MapQuest流量API,但当我试图显示事件时,什么都不会出现,如果我在php中执行“if empty”,它将返回空

代码如下:

    <?php
    $mysongs = simplexml_load_file("http://www.mapquestapi.com/traffic/v1/incidents?key=Fmjtd%7Cluuan1u2nh%2C2a%3Do5-96rw5u&callback=handleIncidentsResponse&boundingBox=$_GET[a], $_GET[b], $_GET[c], $_GET[d]&filters=construction,incidents&inFormat=kvp&outFormat=xml");
echo $mysongs->Incidents[0]->Incident[0]->fullDesc;
?>

我传递的参数:?a=33.3525324999995&b=-118.2324383&c=34.3525324999995&d=-117.2324383


提前谢谢

这里simplexml\u load\u文件没有加载所有xml数据,因此,我创建了一个名为test.xml的xml文件,然后从test.xml加载数据。现在,您可以打印所需的数据

<?php


  $a = $_GET['a'];
  $b = $_GET['b'];
  $c = $_GET['c'];
  $d = $_GET['d'];

   $xml_feed_url = 'http://www.mapquestapi.com/traffic/v1/incidents?key=Fmjtd|luuan1u2nh%2C2a%3Do5-96rw5u&callback=handleIncidentsResponse&boundingBox='.$a.','.$b.','.$c.','.$d.'&filters=construction,incidents&inFormat=kvp&outFormat=xml';
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $xml_feed_url);
   curl_setopt($ch, CURLOPT_HEADER, false);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   $xml = curl_exec($ch);
   curl_close($ch);


            $xml2 = new SimpleXMLElement($xml); 

            $xml2->asXML("test.xml");
            $xml2->asXML();

    $mysongs = simplexml_load_file("test.xml"); 
    print_r($mysongs);      
?>


稍微后退一点。您的
simplexml\u load\u file()
调用是否确实正确地检索了XML?而且,该URL没有提供您试图访问的结构。我假设您删除了某种密钥?请打印r($mysongs);要查看simplexml对象[消息]=>这不是有效的密钥。请检查您是否正确输入了此项。如果你没有密钥,你可以通过注册获得免费密钥。我刚刚测试了你的代码。。。事件中没有数据。。所以它没有显示事件中有数据。。。我刚刚测试了网址。。。这是url(简称)。。。而我输入的钥匙,我相信。。。顺便说一句,谢谢你的帮助。卷曲和简单的跳环是怎么回事?可以毫无问题地获取URL。也许您没有解释添加这些步骤的实际作用。谢谢,您的代码是有效的,但是当我使用替换“&boundingBox=33.3525325,%20-118.2324383,%2034.3525325,%20-117.2324383”和“&boundingBox=$\u GET[a],$\u GET[b],$\u GET[c],$\u GET[d]”来获取参数时,它不起作用。(参数是“?a=33.3525324999995&b=-118.2324383&c=34.3525324999995&d=-117.2324383”。请帮我解决这个问题。非常感谢!(解决这个问题后,我会标记为接受并向上投票。:)@Charles是的,我也不明白。。。这也不是问题所在,它总是解析“,”(短url),但当我将“&boundingBox=33.3525325、%20-118.2324383、%2034.3525325、%20-117.2324383”替换为“&boundingBox=$\u-GET[a]、$\u-GET[b]、$\u-GET[c]、$\u-GET[d]”时,它就不会被解析了。当我在url中使用$\u-GET时,它不会回显任何内容。我们不能这样做,因为我们不知道$\u-GET[lat]、$\u-GET[long]……的值,如果你在url中定义这些值,你就会得到它。$\u-GET[a]的值是33.3525324999995,$\u-GET[b]的值是-118.2324383,$\u-GET[c]的值是34.3525324999995,而$\u-GET的值是[c] 是-117.2324383。再次感谢!