Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    107

    parsing di dati da un file xml

    Devo creare un array di dati provenienti da questo xml: http://www.ecb.europa.eu/stats/eurof...f-hist-90d.xml

    Questo è il mio codice finora:

    codice:
    $xml=simplexml_load_file('http://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml');
    foreach($xml->Cube->Cube as $x) {
        $arr[date('d-m',strtotime($x['time']))] = array();
            foreach($xml->Cube->Cube->Cube as $y) {
            $arr[(string)$y['currency']] = (float)$y['rate'];
        };
    };
    Ovviamente così viene riempito solo il primo nodo. Come faccio per selezionare la data da riempire di volta in volta? Ciò che dovrei ottenere è qualcosa del genere:

    codice:
    '09-01' => 
        'USD' => float 1.2345
        [...]
    
    '12-01' => 
        'USD' => float 2.3456
        [...]
    [...]


  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Di sicuro sbagli il secondo foreach. devi prendere i "Cube" figli $x. Prova così:
    Codice PHP:
    $xml=simplexml_load_file('http://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml');
    $arr = array();
    foreach(
    $xml->Cube->Cube as $x) {
        
    $key date('d-m',strtotime($x['time']));
        
    $arr[$key] = array();
        foreach(
    $x->Cube as $y) {
            
    $arr[$key][(string)$y['currency']] = (float)$y['rate'];
        }
    }
    print_r($arr); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    107
    Grazie boots...purtroppo non sono pratico con queste operazioni. Ne sono venuto fuori all'1 di stanotte esattamente come hai detto tu

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.