거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Telegram에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
라이브러리

XmlParser - MetaTrader 5용 라이브러리

조회수:
4645
평가:
(36)
게시됨:
2010.04.12 13:52
업데이트됨:
2016.11.22 07:32
xmlparserdll.zip (235.42 KB)
\MQL5\Include\
xmlparser.mqh (6.12 KB) 조회
\MQL5\Scripts\
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

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

MetaQuotes Ltd에서 러시아어로 번역함.
원본 코드: 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.