парсинг xml средствами php

redhat

Новичок
Добрый день.
Дано:
задача - получить курс валют центробанка Европы.
средства - немного познаний в пхп и собственно сами курсы валют в хмл

написал кусок кода, пытаюсь дебажить:

PHP:
$html ='';
  $url1 = 'http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml';
    $ch1 = curl_init();
    curl_setopt($ch1, CURLOPT_URL, $url1);
    curl_setopt($ch1, CURLOPT_TIMEOUT, 5);
    curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch1, CURLOPT_HEADER, 0);
    curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, 0);
    $xml1 = curl_exec($ch1);
    if(!curl_errno($ch1)){
        $myxml1 = new SimpleXMLElement($xml1);
        $mycube = array($myxml1->Cube->Cube);
        foreach ( $mycube as $currency1 ) {
            if ($currency1->Cube['currency'] == 'USD') {     // интересующий нас курс, для теста - явно указан
                $curseurbank .= floatval($currency1->Cube['rate']);                                
            };
            
                    }
    }
    curl_close($ch1);
    $html .= '<br>startest<br>';
    $html .=  $curseurbank ;
    echo $html ;
Такая конструкция работает. Но, исходя из теста - напрочь игнорирует foreach(если if передать любую другую валюту - результата не будет, если его закомментировать - выведет курс доллара(первый в списке)).

Вопрос: почему так?
 

fixxxer

К.О.
Партнер клуба
Потому что вот тут
$mycube = array($myxml1->Cube->Cube);
ты сам сделал массив из 1 элемента.
 

fixxxer

К.О.
Партнер клуба
как то так
PHP:
foreach ($myxml1->Cube->Cube->Cube as $RateNode) {
    var_dump( (string)$RateNode->attributes()->currency[0], (float)$RateNode->attributes()->rate[0] );
}
 
Сверху