XML 解析器 - MetaTrader 5 库
用于解析 XML 文档的库。纯 MQL5,它不使用任何外部库。
要使用该库,只需包含它:
#include
#includeCXmlDocument 文档;空白 启动时() { 细绳文件=“文件.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小时后评论,即可解锁附件下载
立即登录
