PHP Classes
Icontem

File: BNR_reader.class.php


  Search   All class groups All class groups   Latest entries Latest entries   Top 10 charts Top 10 charts   Newsletter Newsletter   Blog Blog   Forums Forums   Help FAQ Help FAQ  
  Login   Register  
Recommend this page to a friend! ReTweet ReTweet Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Cristian Navalici  >  XML Currency Reader  >  BNR_reader.class.php  
File: BNR_reader.class.php
Role: Class source
Content type: text/plain
Description: Specific implementation for National Bank of Romania xml file
Class: XML Currency Reader
Retrieve currency exchange data from XML files
 

Contents

Class file image Download
<?php
/**
 * BNR READER CLASS
 * 
 * this class is intended to provide an easy way to read the xml with currencies
 * from the bank site, and returns it for further usage in a readable form
 *
 * @author Cristian Năvălici {@link http://www.lemonsoftware.eu} lemonsoftware [at] gmail [.] com
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
 * @version 1.0 26 Oct 2008
 * 
 */

class BNR_reader extends XML_currency_reader{
    
/**
    * xml file on the BNR site
    */
    
protected $xmlpath 'http://www.bnro.ro/nbrfxrates.xml';

    
// ----------------------------------------------------------------------------
    /**
    * CONSTRUCTOR
    *
    * 
    * @param none
    * @return void
    */
    
public function __construct() { }


    
// ----------------------------------------------------------------------------
    /**
    * PARSE RATE CONTENT
    *
    * this method is used to extract specific information about a currency
    * particular usage for National Bank of Romania
    * 
    * @param array - $content - array containing arrays of currencies and rates [2]
    * @param string - currency name three letters (currency symbol)
    * @return array [rate][multiplier] | empty array of not found
    */
    
public function parse_rate_contents($content$currency 'EUR') {
        
try {
            if ( !
$content ) return array();

            
// cycle for each value
            
foreach ( $content as $con ) {
                
$name $con['currency'];
                if ( 
$name == $currency ) {
                    return array(
'rate' => $con['rate'], 'multiplier' => $con['multiplier']);
                }
            }

            return array();

        } 
catch (Exception $e) {
            echo 
'BNR_reader->parse_rate_contents: ' .$e->getMessage(); exit();
        }
    }


    
// ----------------------------------------------------------------------------
    /**
    * PARSE THE DOMDocument
    *
    * parse the xml content and returns it into a readable form (array)
    * this is a specific functions for National Bank Of Romania
    * 
    * @param none
    * @return array - of arrays - for structure see doc or look into the code
    */
    
public function parse_domdoc() {
        
try {
            if ( !
$this->domdoc ) {
                
throw new Exception('No DOMDocument. DOMconnector() must be run before.');
            }

            
$dom $this->domdoc;

            
$sender_nl          $dom->getElementsByTagName('Sender');
            
$sender_name        $sender_nl->item(0)->nodeValue;

            
$sending_date_nl    $dom->getElementsByTagName('SendingDate');
            
$sending_date       $sending_date_nl->item(0)->nodeValue;

            
// in Cube node we have all the rates
            
$cube_nl        $dom->getElementsByTagName('Cube')->item(0);

            foreach ( 
$cube_nl->childNodes as $c ) {
                
$mul = ( $c->hasAttribute('multiplier') ) ? (int)$c->getAttribute('multiplier') : 1;

                
$currency   $c->getAttribute('currency');
                
$rate       $c->nodeValue;
                
$rates[]    = array('currency' => $currency'rate' => $rate'multiplier' => $mul);
            }

            return array( 
$sender_name$sending_date$rates);

        } 
catch (Exception $e) {
            echo 
'BNR_reader->DOMconnector: ' .$e->getMessage();
        } 
catch (DOMException $e) {
            echo 
'DOM: BNR_reader->DOMconnector: ' .$e->getMessage();
        }
    }

// class
?>

 
  Advertise on this site Advertise on this site   Site map Site map   Statistics Statistics   Site tips Site tips   Privacy policy Privacy policy   Contact Contact  

For more information send a message to :
info at phpclasses dot org.
Copyright (c) Icontem 1999-2009 PHP Classes - PHP Class Scripts
  PHP Book Reviews - Reviews of books and other products