2015-10-28 2 views
0

Если я разобрать этот URL в браузере это дает мне XML, но когда я положил его в код его показ пустой массивXML не смог разобрать

https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20csv%20where%20url%3D%22http%3A%2F%2Ffinance.yahoo.com%2Fd%2Fquotes.csv%3Fe%3D.csv%26f%3Dc4l1%26s%3DUSDINR%3DX%2CTRYINR%3DX%2CSARINR%3DX%2CEURINR%3DX%22&diagnostics=true 

Мой код, как это

public function fetch_Currency(){ 

      $this->url="https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20csv%20where%20url%3D%22http%3A%2F%2Ffinance.yahoo.com%2Fd%2Fquotes.csv%3Fe%3D.csv%26f%3Dc4l1%26s%3DUSDINR%3DX%2CTRYINR%3DX%2CSARINR%3DX%2CEURINR%3DX%22&diagnostics=true"; 
      $this->handle = file_get_contents($this->url); 

      if ($this->handle) { 
        $p = xml_parser_create(); 
        xml_parse_into_struct($p, $this->result, $this->xml_val, $this->xml_index); 
        xml_parser_free($p); 
     } 
    } 

public function get_exchange(){ 
     echo "<pre>"; 
     var_dump($this->xml_val); 
     echo "</pre>"; 
    } 
+0

вы сделали какие-либо попытки отладки сценария еще? – VolkerK

+1

Вы пробовали [simplexml_load_file] (http://php.net/manual/en/function.simplexml-load-file.php)? Он загружает все в массив, делающий жизнь легкой :) –

ответ

0

Heres простой способ для разбора XML в вашем примере, и получить доступ к elemnts:

$url = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20csv%20where%20url%3D%22http%3A%2F%2Ffinance.yahoo.com%2Fd%2Fquotes.csv%3Fe%3D.csv%26f%3Dc4l1%26s%3DUSDINR%3DX%2CTRYINR%3DX%2CSARINR%3DX%2CEURINR%3DX%22&diagnostics=true"; 
$xml = simplexml_load_file($url); 

//echo first currency 
echo $xml->results->row[0]->col1; 

//whole document tree 
print_r($xml); 
Смежные вопросы