2017-07-27 3 views
-2

IM Gettin: "Invalid argument für foreach geliefert()""Ungültiges Argument für foreach()" XML lesen?

in dem für jede Zeile, wenn ein bestimmtes Element der xml

PHP zu lesen versuchen:

$urls="http://www.floatrates.com/daily/usd.xml";  

$url= $urls; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
$data = curl_exec($ch); 
curl_close($ch); 
$feed = new SimpleXMLElement($data,LIBXML_NOCDATA); 


foreach ($feed->channel->item as $item) { 
$title  = $item->title; 
if (preg_match('/ARS/',$title)) { 
    echo $title; 
} 

} 

Antwort

0
$urls = "http://www.floatrates.com/daily/usd.xml"; 
$url = $urls; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
$data = curl_exec($ch); 
curl_close($ch); 
$feed = new SimpleXMLElement($data, LIBXML_NOCDATA); 
foreach ($feed->children() as $item) { 
if ("item" == $item->getName()) { 
    $title = $item->title; 
     if (preg_match('/ARS/', $title)) { 
      echo $title; 
     } 
    } 

} 
+0

Vladimirs Code funktioniert. – RockwoodON

+0

funktioniert super !!, aber warum die Zeile: "$ channel = $ feed-> channel;"? – Targaryen

0

Es bedeutet wahrscheinlich, dass $ feed nicht enthält, was Sie erwarten, dass es enthält, und Sie übergeben Array nicht an foreach Verwenden Sie print_r($feed);, um zu sehen, dass es tatsächlich enthält, und gehen Sie von dort.

Verwandte Themen