Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2001
    residenza
    NG Lab Cecchina, Roma
    Messaggi
    143

    Inserire dati in database da XML

    Ciao ragazzi, il mio problema e il seguente:
    Ho un file XML (di una banca)
    http://www.bnr.ro/nbrfxrates.xml

    Dovrei prendere il corso di 2 valute (euro + dollaro), alterarlo e inserirlo nel database.
    Qui provo a stamparlo nella pagina, ma non ci riesco.

    Codice PHP:
    <?php$xml=simplexml_load_file("http://www.bnr.ro/nbrfxrates.xml") or die("Error: Cannot create object");
    $eur=$xml->Rate[11]*0.945;
    $dol=$xml->Rate[28]*0.945;
    echo 
    $eur;?>
    Il risultato e zero
    Inserirlo nel database e possibile con cron Job ?

    Grazie mille
    Ottima scelta

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, a prescindere da xml, noto diverse imprecisioni nel tuo codice:

    1 - dovresti separare il tag <?php dal resto del codice che ci sta dentro.

    2 - penso, ma potrei sbagliarmi, che con simplexml tu non possa navigare la struttura xml in quel modo, senza specificare esattamente tutto il percorso dei nodi fino a quello voluto. Se intendi impostarlo in quel modo, dovresti usare altri metodi, tipo xpath o robe del genere.

    3 - l'indice dei nodi è in base 0. Da quel che vedo su tale xml, i due nodi relativi a EUR e USD, dovrebbero essere Rate[10] e Rate[27], non 11 e 28. A dire il vero, per andare sul sicuro, dovresti prendere come riferimento proprio l'attributo currency che ne specifica il valore cercato. Ma chiaramente devi valutare tu secondo le tue esigenze.

    4 - il valore prelevato dal nodo dovrebbe essere convertito in un valore numerico a virgola mobile, altrimenti otterrai dei valori imprecisi quando vai a fare le operazioni numeriche.

    Correggendo questi errori, potresti avere una roba del genere:
    codice:
    <?php
    $xml=simplexml_load_file("nbrfxrates.xml") or die("Error: Cannot create object");
    $eur=floatval($xml->Body->Cube->Rate[10])*0.945;
    $dol=floatval($xml->Body->Cube->Rate[27])*0.945;
    echo $eur;
    ?>
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2001
    residenza
    NG Lab Cecchina, Roma
    Messaggi
    143
    Grazie mille.
    Funziona alla perfezione, almeno per quello che serve a me
    Avevo contato male io la posizione dei rate, omettendo lo zero.
    Ottima scelta

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.