Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Twitter !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Vues:
4565
Note:
(36)
Publié:
2010.04.12 13:52
Mise à jour:
2016.11.22 07:32
xmlparserdll.zip (235.42 KB)
\MQL5\Include\ \MQL5\Scripts\
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

The CXmlElement class provides the following opportunities for working with XML documents.

  • It allows you to create DOM-model (objects tree) from the XML-document (or from its single element);
  • It allows you to read, modify, create and delete the nested elements and text;
  • It allows you to save the object model to XML.

Class interface:

class CXmlElement
{
public:
  string        Name;
  CXmlElement   *Elements[];
  CXmlAttribute *Attributes[];
  string        Text;
  ...  
  string SetXml (string xml);
  string GetXml ();
};

For access to the class attributes a simple class CXmlAttribute is used:

class CXmlAttribute 
{
public:
  string Name;
  string Value;
};

Here is a simple example of script, that parses XML and prints an information from DOM tree:

//+------------------------------------------------------------------+
//|                                              XmlParserScript.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//|                                                   yu-sha@ukr.net |
//+------------------------------------------------------------------+
#include <XmlParser.mqh>
//+------------------------------------------------------------------+
//| Script start                                                     |
//+------------------------------------------------------------------+
void OnStart()
  {
   CXmlElement xmldoc;
   string xml="<!--Comment--><ROOT><ITEM  Attr1=\"HELLOW\">Terminal &quot;MT5&quot;</ITEM></ROOT>";
   Print("XML="+xml);
   string res=xmldoc.SetXml(xml);
   if(res=="")
     {
      Print("The Root element: "+xmldoc.Name);
      Print("  Number of Attributes: "+string(ArraySize(xmldoc.Attributes)));
      Print("  Nested elements: "+string(ArraySize(xmldoc.Elements)));
      Print("  First nested element:"+xmldoc.Elements[0].Name);
      Print("    Its first attribute: "+xmldoc.Elements[0].Attributes[0].Name+"="+xmldoc.Elements[0].Attributes[0].Value);
      Print("    Its text: "+xmldoc.Elements[0].Text);
      Print("XML="+xmldoc.GetXml());
     }
   else
      Print(res);
  }
//+------------------------------------------------------------------+

Here is a result of script execution:


Additional information:

  • The current version loads into the DOM only the elements, their attributes and text. All other types of the information (comments, descriptions, ...) are ignored. As a result - maybe the loss of the information about codepage, version, so XML document may be saved incorrectly.
  • While saving it converts the special symbols like <"&'> into the essences like &lt:, &gt;, ... according to the standard.
  • This parser is intended mostly for parsing the XML documents, rather than fully working with XML documents.

Files location:

  • terminal_data_folder\MQL5\Libraries\xmlparser.dll
  • terminal_data_folder\MQL5\Include\xmlparser.mqh
  • terminal_data_folder\MQL5\Scripts\xmlparserscript.mq5

Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/97

iBBFill iBBFill

The indicator plots the Bollinger Bands ®, filled with different colors depending on the trend direction.

iMovment iMovment

The indicator plots the candles with different colors depending on the trend direction and price movement.

ZeroLag MACD ZeroLag MACD

The ZeroLag MACD indicator shows the histogram with color of the previous bar.

Murrey Math Lines (support and resistance) Murrey Math Lines (support and resistance)

The indicator plots Murrey Math Lines for all available history, it doesn't uses any objects.