欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

XML 解析器 - MetaTrader 5 库

author emer | 934 人阅读 | 0 人评论 |

用于解析 XML 文档的库。纯 MQL5,它不使用任何外部库。

要使用该库,只需包含它:

#include 

#include CXmlDocument 文档;空白 启动时() 
{
  细绳文件=“文件.xml”;
  细绳犯错;
  如果(doc.CreateFromText(文件,错误))
  {
    CXmlElement * xmlItem = doc.FDocumentElement.GetChild(0);
    为了整数我=0; i如果(xmlItem.GetChild(i).GetName() ==“层”)
    {
      CXmlElement* 层 = xmlItem.GetChild(i);
      为了整数j=0; j如果(layer.GetChild(j).GetName() ==“神经元”)
        {
          /* .... */        }
      }
    }
  }
}

笔记:

主要部件:

CXml文档类提供从文件/字符串下载 XML 文档并保存到文件的方法。

CreateX 函数解析 XML 文档并创建 DOM 模型的层次结构,可以使用它来完成使用F文档元素 

班级CXml文档 
{
  私人的:

    空白DoElementTrimText(CXmlElement &aXmlItem) ;
  
  民众:
    CXmlElement FDocumentElement;

    空白CXmlDocument();
    空白~CXmlDocument();
    空白清除();
    空白CopyTo(CXmlDocument &xmlDoc);
  
    布尔值  从文本创建(常量 细绳&XML,细绳&错误);
    布尔值  从文件创建(常量 细绳文件名,细绳&错误);
    布尔值  保存到文件(常量 细绳文件名);

    细绳获取Xml();
};

 

CXml元素类是任何 XML 文档的基接口。它提供对元素、属性和内容的访问

班级CXml元素 
{
  私人的:
   细绳         F名称;
    CXmlAttribute* FAttributes[];
    CXmlElement *FElements[];
    细绳         F文本;
    CXmlElement*   FParent;
 民众:  
   //--- 构造函数方法   空白  CXmlElement();
    空白~CXmlElement();
    空白初始化(常量 细绳一个名字,常量CXmlElement* aParent=无效的,常量 细绳文本=””);
    空白CopyTo(CXmlElement &aDst);
    虚拟的 空白清除 ();
    
    //--- 主要服务方法   细绳获取名称 ()常量;
    空白设置名称 (常量 细绳名字);
    细绳获取文本()常量;
    空白设置文本(常量 细绳文本);
    CXmlElement* GetParent ()常量;
    空白SetParent(CXmlElement* aParent);
    
    //--- 属性服务方法   整数获取属性计数()常量;
    整数获取属性索引 (CXmlAttribute* aAttr)常量;
    CXmlAttribute* 获取属性 (常量 细绳名字)常量;
    CXmlAttribute* 获取属性 (整数位置)常量;
    细绳获取属性值(常量 细绳名字)常量;
    
    CXmlAttribute* AttributeInsertAt (CXmlAttribute* aAttr,整数aPos);
    CXmlAttribute* AttributeAdd (CXmlAttribute* aAttr);
    CXmlAttribute* AttributeInsertAfter (CXmlAttribute* aAfter, CXmlAttribute* aAttr);
    CXmlAttribute* AttributeInsertBefore (CXmlAttribute* aBefore, CXmlAttribute* aAttr);
    CXmlAttribute* AttributeRemove (CXmlAttribute* aAttr);
    CXmlAttribute* 属性删除 (整数aPos);
    空白属性删除 (CXmlAttribute* aAttr);
    空白属性删除(整数aPos);
    空白属性删除全部();
  
    //--- 子服务方法   整数获取子项计数()常量;
    整数获取子索引(CXmlElement* aElement)常量;
    CXmlElement* GetChild (常量 细绳名字)常量;
    CXmlElement* GetChild (整数位置)常量;
    细绳获取子文本(常量 细绳名字)常量;

    CXmlElement* ChildInsertAt (CXmlElement* aElement,整数aPos);
    CXmlElement* ChildAdd (CXmlElement* aElement);
    CXmlElement* ChildInsertAfter (CXmlElement* aAfter, CXmlElement* aElement);
    CXmlElement* ChildInsertBefore (CXmlElement* aBefore, CXmlElement* aElement);
    CXmlElement* ChildRemove (CXmlElement* aElement);
    CXmlElement* ChildRemove (整数aPos);
    空白ChildDelete (CXmlElement* aElement);
    空白子删除 (整数aPos);
    空白子删除全部();
  
    细绳获取Xml(整数级别);
};

 

CXml属性是一个用于处理属性的简单类


附件下载

📎 xmlbase.mqh (0.56 KB)

📎 xmlattribute.mqh (3.95 KB)

📎 xmldocument.mqh (11.89 KB)

📎 xmlelement.mqh (18.89 KB)

📎 xml_test.mq5 (1.39 KB)

Source: MQL5 #712

🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录