Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

XML Парсер на MQL4 - библиотека для MetaTrader 4

Просмотров:
5715
Рейтинг:
(8)
Опубликован:
2011.06.30 10:29
Обновлен:
2014.04.21 14:55
XMLParser.zip (109.32 KB)
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

XML — текстовый формат, предназначенный для хранения структурированных данных для обмена информацией между приложениями. Имеет реализации парсеров для всех современных языков программирования кроме MQL4. Я решил исправить это досадное недоразумение. Для MQL5 такой парсер уже существует. Он реализован в виде библиотеки DLL. Я решил отказаться от использования внешних DLL. Конечно это сказалось на быстродействии, но зато, надеюсь, добавило доверия к моей open source библиотеке.

Информацию о найденных ошибках, а так же Ваши замечания и предложения Вы можете отправить мне на адрес: myfxresearch@gmail.com

Я реализовал оба подхода к парсингу:

  • Simple API for XML (SAX)
  • Document Object Model (DOM)

Я постарался реализовать функции Парсера аналогичные, используемым в пространстве имен System.Xml .NET.

Парсер автоматически преобразует сущности & amp; в &, & lt; в <, & gt; в >, & apos; в ', & quot; в " и обратно.

В текущую версию не вошла реализация:

  • XSD схем
  • Поиск с использованием выражений XPath
  • XSL преобразования
Файлы:
  • XMLParsingMQL4.mqh - файл заголовков. Скопируйте в каталог experts/include Вашего терминала.
  • XMLParsingMQL4.mq4 - исходный код парсера. Скопируйте в каталог experts/libraries Вашего терминала.
  • XML_SAX_Write.mq4 - Пример использования SAX (Запись). Скопируйте в каталог experts/scripts Вашего терминала.
  • XML_SAX_Read.mq4 - Пример использования SAX (Чтение). Скопируйте в каталог experts/scripts Вашего терминала.
  • XML_DOM.mq4 -Пример использования DOM. Скопируйте в каталог experts/scripts Вашего терминала.
  • XMLParsingMQL4.chm - файл справки

Для использования библиотеки в Ваших Скриптах/Советниках/Индикаторах, добавте следующую строку в Ваш файл.

#include <XmlParsingMQL4.mqh> /// Вставляем файл-заголовок с описанием функций XML Парсера 

SAX. Запись/Создание Xml файла.

int XmlTextWriter (int &XmlTextWriter[], string FileName)
Открывает Файл FileName для записи. Если файл уже существовал - обнуляет, если нет - создает новый. Возвращает файловый описатель открытого файла или -1 в случае неудачи.

void WriteStartDocument (int &XmlTextWriter[], string encoding)
Записывает строку заголовка Xml файла.

void WriteStartElement (int &XmlTextWriter[], string Name)
Записывает открывающий тег с именем Name.

void WriteAttributeString (int &XmlTextWriter[], string attrName, string value)
Записывает атрибут attrName со значением value.

void WriteString (int &XmlTextWriter[], string text)
Записывает заданное текстовое содержимое text.

void WriteElementString (int &XmlTextWriter[], string Name, string value)
Записывает тег с именем Name и значением value. value

void WriteComment (int &XmlTextWriter[], string text)
Записывает примечание

void WriteEndElement (int &XmlTextWriter[], string Name)
Закрывает тег с именем Name.

void WriteEndDocument (int &XmlTextWriter[])
Закрывает документ.

SAX. Чтение Xml файла.

bool XmlTextReader (int &XmlTextReader[], string FileName)
Открывает Файл FileName для чтения. Создает объект XmlTextReader. Возвращает true в случае успеха, иначе false.

string XmlRead (int &XmlTextReader[]) Считывает текущий узел и возвращает его в виде строки. Если достигнут конец документа возвращает пустую строку.

void XmlClose (int &XmlTextReader[])
закрывает XmlTextReader.

DOM. Произвольный доступ к Xml документу

string XmlDocument (string FileName)
Считываем Xml файл FileName. Пропускаем заголовок.

void XmlDocChildNodes (string Node, string &aChildNodes[])
Записываем дочерние узлы Node в массив aChildNodes.

string XmlDocAppendChild (string Node, string Child)
Добавить дочерний узел Child.

void XmlDocGetElementsByTagName (string doc, string &aNodes[], string Name)
Записываем все узлы с именем Name в массив aNodes.

string XmlDocFormat (string doc)
Отформатировать doc.

void XmlDocSave (string doc, string OutPutFileName, string encoding)
Сохранить doc в OutPutFileName.

string XmlDocCreateElement (string Name)
Создать Элемент с именем Name

string XmlDocText (string Node)
Возвращает значение Узла Text

string XmlDocSetElementText (string Node, string text)
Установить значение элемента text text

string XmlDocAppendAttribute (string Node, string AttrName, string value)
добавить атрибут AttrName со значением value.

Функции для определения типа узла

bool XmlDocIsElement (string Tag)
Является ли элемент начальным тегом

bool XmlDocIsEndElement (string Tag)
Является ли элемент конечным тегом

bool XmlDocIsText (string Tag)
Является ли элемент Текстовым значением

bool XmlDocIsComment (string Tag)
Является ли элемент комментарием

bool XmlDocIsClosedTag (string Tag)
Является ли Tag закрытым.


Функции для получения параметров узла

string XmlDocName (string Node)
Возвращает имя текущего узла.

string XmlDocAttribute (string Node, string AttrName)
Возвращает атрибут AttrName.

Более подробно ознакомиться с функциями парсера, а так же примерами его использования, Вы сможете в файле с документацией, находящейся в Архиве

Стрелочные часы для МТ4 Стрелочные часы для МТ4

Удобные стрелочные часы для отображения времени на графике. Не требует DLL для работы. Все, что надо, установить шрифт.

CommentTab CommentTab

Преобразование символов табуляции в пробелы, с учетом пиксельного размера пробела. Вывод получившегося текста в комментарий.

Sounds_TP_SL Sounds_TP_SL

При тейк профите проигрывается одна мелодия, при стопе другая.

b-PSI@ICManager b-PSI@ICManager

Менеджер инвест-капитала.