Цитата:
Сообщение от
UnQuaiz
Я решил эту задачу по другому..
Использовал классы для работы с 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 - таблица в которой указано соответствие кодов валют с кодами на сайте центробанка...
У меня при запуске этого джобика выдалась ошибка XMLNode объект не инициализирован
именно на строку 26, т.е
PHP код:
CurID = node1.nodeValue();
Подскажите пожалуйста как устранить проблему есть кто сможет. Спасибо.