请观看如何免费下载自动交易
请在Twitter上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
显示:
1333
等级:
(36)
已发布:
2014.01.21 07:43
已更新:
2016.11.22 07:33
xmlparserdll.zip (235.42 KB)
\MQL5\Include\
xmlparser.mqh (6.12 KB) 预览
\MQL5\Scripts\
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

这个 CXmlElement 类提供以下功能与 XML 文档工作。

  • 它允许您从 XML文档 (或从它的单个元素) 创建 DOM-模型 (对象树);
  • 它允许您读, 修改, 创建和删除嵌套元素和文本;
  • 它允许您保存对象模型至 XML。

类接口:

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

对于存取类属性,用到一个简单的类 CXmlAttribute:

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

此处是一个简单的脚本例子, 解析 XML 并打印从 DOM 树得到的信息:

//+------------------------------------------------------------------+
//|                                              XmlParserScript.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//|                                                   yu-sha@ukr.net |
//+------------------------------------------------------------------+
#include <XmlParser.mqh>
//+------------------------------------------------------------------+
//| 脚本开始                                                          |
//+------------------------------------------------------------------+
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("根元素: "+xmldoc.Name);
      Print("  属性数量: "+string(ArraySize(xmldoc.Attributes)));
      Print("  嵌套元素: "+string(ArraySize(xmldoc.Elements)));
      Print("  第一个嵌套元素:"+xmldoc.Elements[0].Name);
      Print("    它的第一个属性: "+xmldoc.Elements[0].Attributes[0].Name+"="+xmldoc.Elements[0].Attributes[0].Value);
      Print("    它的文本: "+xmldoc.Elements[0].Text);
      Print("XML="+xmldoc.GetXml());
     }
   else
      Print(res);
  }
//+------------------------------------------------------------------+

这是脚本执行结果:


附加信息:

  • 当前版本仅加载 DOM 的元素, 它们的属性和文本。所有其它类型信息 (注释, 描述, ...) 均被忽视。作为结果 - 也许会遗失一些信息,如代码页, 版本, 所以保存 XML 文档也许会不正确。
  • 当保存时,会依据标准转换特殊符号,像 <"&'> 至 &lt:, &gt;, ...。
  • 这个解析器的目的主要是解析 XML 文档,而不是完全使用 XML 文档工作。

文件位置:

  • 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

彩色抛物线 2 彩色抛物线 2

彩色抛物线 2。彩色依据加速因子。

AdoSuite v 1.0 AdoSuite v 1.0

通过 ODBC 和 OLE DB 接口与数据库工作的类

iBBFill iBBFill

本指标绘制布林带 ®, 依据趋势方向填充不同颜色。

iMovment iMovment

本指标依据趋势方向和价格走势, 绘制不同颜色的蜡烛图。