Библиотеки: EasyXML - XML Parser

 

EasyXML - XML Parser:

EasyXML - это MQL5-библиотека для парсинга XML-документов.

Она может обрабатывать XML-документы из трех разных источников: URL, файл и cтрока. Библиотека является полностью объектно-ориентированной и аккуратно интегрируется с MQL5 за счет использования классов CObject и CArrayObj Стандартной библиотеки для хранения DOM-дерева.

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- создаем объект класса CEasyXml
   CEasyXml EasyXmlDocument;

//--- выключаем опцию отладки
   EasyXmlDocument.setDebugging(false);

//--- пример: прохождение по элементам DOM-дерева
   if(EasyXmlDocument.loadXmlFromUrl("http://www.forexfactory.com/ffcal_week_this.xml"))
     {
      CEasyXmlNode *RootNode=EasyXmlDocument.getDocumentRoot();

      //--- цикл прохода по дочерним узлам корневого узла
      for(int i=0; i<RootNode.Children().Total(); i++)
        {
         CEasyXmlNode *ChildNode=RootNode.Children().At(i);
         Print(IntegerToString(i)+" "+ChildNode.getName());

         //--- цикл прохода по дочерним узлам
         for(int j=0; j<ChildNode.Children().Total(); j++)
           {
            CEasyXmlNode *SubNode=ChildNode.Children().At(j);
            Print(IntegerToString(i)+"-"+IntegerToString(j)+"   "+SubNode.getName()+" | "+SubNode.getValue());
           }
        }
     }
  }
Результат работы скрипта:
GP      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      0 event
PK      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      0-0   title | Bank Holiday
DL      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      0-1   country | JPY
ND      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      0-2   date | 12-23-2013
KI      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      0-3   time | 12:00am
HO      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      0-4   impact | Holiday
HI      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      0-5   forecast | 
ON      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      0-6   previous | 
JF      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      1 event
IL      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      1-0   title | UBS Consumption Indicator
IP      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      1-1   country | CHF
EH      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      1-2   date | 12-23-2013
HN      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      1-3   time | 7:00am
GK      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      1-4   impact | Low
ML      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      1-5   forecast | 
ID      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      1-6   previous | 1.28
EK      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      2 event
HN      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      2-0   title | German Import Prices m/m
QE      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      2-1   country | EUR
PO      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      2-2   date | 12-23-2013
EE      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      2-3   time | 7:00am
NF      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      2-4   impact | Low
MS      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      2-5   forecast | 0.4%
HK      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      2-6   previous | -0.7%
DO      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      3 event
OJ      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      3-0   title | Personal Income m/m
FN      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      3-1   country | USD
KR      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      3-2   date | 12-23-2013
NI      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      3-3   time | 1:30pm
QM      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      3-4   impact | Low
RF      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      3-5   forecast | 0.4%
IN      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      3-6   previous | -0.1%
MS      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      4 event
CQ      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      4-0   title | Personal Spending m/m
OR      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      4-1   country | USD
JF      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      4-2   date | 12-23-2013
GM      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      4-3   time | 1:30pm
KG      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      4-4   impact | Medium
NJ      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      4-5   forecast | 0.5%
OP      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      4-6   previous | 0.3%
JH      0       14:38:35.295    Example_Inline_Parsing (AUDCAD,H1)      5 event
....

Автор: Paul van Hemmen

 

Не работает...

Плюс еще ошибки 

sOutput += (ActualNode.getValue()) ? " Value: '" + ActualNode.getValue() + "'" : "";

Возвращает тип string ActualNode.getValue()...