Показать сообщение отдельно
Старый 04.03.2003, 10:01   #6  
UnQuaiz is offline
UnQuaiz
Участник
 
5 / 14 (1) ++
Регистрация: 15.07.2002
Re: Получить курс валют из интернета
Цитата:
Изначально опубликовано Андре
Кто нибудь пробовал решить такую задачу ?
Я решил эту задачу по другому..
Использовал классы для работы с XML.
На www.cbr.ru есть скрипт возвращающий курсы валют в xml формате..
http://www.cbr.ru/scripts/sample_xml.htm
здесь есть примеры на VB и php..
у меня получилось так...

PHP код:

   
tempstr          CurID;
   
XMLDocument      xml;
   
XMLNamedNodeMap  attrs;
   
XMLNodeList      nodelist,nodelist1;
   
XMLNode          node,node1;
   
ExchRate         exrate;

;

    
xml = new XMLDocument();
    
xml.async(False);
    
xml.validateOnParse(False);
    
xml.load('http://www.cbr.ru/scripts/XML_daily.asp');
    
nodelist xml.getElementsByTagName('Valute');
    if(
nodelist) {node nodelist.nextNode();}
    while(
node)
    {
     
attrs node.attributes();
     
node1 attrs.getNamedItem('ID');
     
nodelist1 node.childNodes();
     
CurID node1.nodeValue();
     
node nodelist1.item(4);
     
ExRate =str2num(strReplace(node.text(),',',''))/100;
     
select Currency_CBR where Currency_CBR.CBRCode == CurID;
     
select Rates where Rates.FromDate==Today() &&       Rates.CurrencyCode == Currency_CBR.CurrencyCode;
      if(!
Rates)
      {
       
Rates.selectForUpdate();
       
Rates.FromDate Today();
       
Rates.CurrencyCode Currency_CBR.CurrencyCode;
       
Rates.ExchRate ExRate*Currency_CBR.Factor;
       
Rates.insert();
      }
      else
      {
       
error(strfmt("Обменный курс валюты %1 за %2 уже существует.",Currency_CBR.CurrencyCode,Today()));
      }
     }
     
node nodelist.nextNode();
    }

Currency_CBR - таблица в которой указано соответствие кодов валют с кодами на сайте центробанка...
За это сообщение автора поблагодарили: AlexeyS (2), alex55 (1), SIrina (1).