Я смог скомпилировать и запустить код с первой попытки в моем новом MT5.
- 0 проблем с wininet !
- Очень хороший код
Отличный вклад! Спасибо.
Спасибо за хорошую библиотеку,
Когда я попытался разобрать свой документ методом "Ввод файла", я получил эту ошибку :*** Invalid Character found. Должен быть началом открытого тега P:0 ***.
После головной боли и поисков по всему миру я понял, что кодировка, которую принимает парсер - "UCS-2 LE BOM", поэтому лучше было упомянуть об этом в описании,
Есть ли способ изменить эту кодировку по умолчанию, так как мой XMl Writer использует "UTF-8-BOM"?
привет еще раз, я нашел решение для моего случая, может это поможет другим,:)
Я изменил одну строку в функции "CEasyXml::loadXmlFromFile(string pFilename)", принадлежащей классу EasyXML:
int hFile=FileOpen(pFilename,FILE_READ|FILE_ANSI,CP_UTF8);
это правильно читает мой файл с форматом кодировки "UTF-8-BOM".
но все еще необходимо удалить символы "BOM "Bytes Of Orders="ï "¿" из строки с помощью :
StringReplace(pText,"","");
Привет, я пытаюсь получить данные на этой странице: https://www.usda.gov/oce/commodity/wasde/latest.xml, но я получаю эту ошибку с помощью скрипта example_inline_parsing: *** Invalid Character found. Должно быть начало открытого тега P:0 ***
Я просто заменяю оригинальный url на вышеуказанный, а скрипт не работает.
Есть идеи?
Спасибо
Привет, Пол.
Спасибо за отличный полезный класс.
Кстати, можно ли сделать глубокую копию объекта CEasyXmlNode с помощью конструктора копирования?
Не работает...
Плюс еще ошибки
sOutput += (ActualNode.getValue()) ? " Value: '" + ActualNode.getValue() + "'" : "";
Возвращает тип string ActualNode.getValue()...
Похоже, что существует ошибка, когда используются самозакрывающиеся теги.
Поэтому во многих xml-редакторах при наличии пустого тега он автоматически преобразуется в самозакрывающийся тег. Например.
<element></element>
становится
<element/> or<element />
автоматически.
И согласно w3 XML elements, использование самозакрывающихся тегов является законным. Поэтому я не понимаю, почему они не поддерживаются при импорте xml-документов. Надеюсь, @Liquinaut сможет решить эту проблему.
К счастью, в моем случае количество самозакрывающихся тегов относительно невелико. Но что, если в документе сотни или тысячи таких тегов. Ожидается, что пользователи будут как-то преобразовывать эти теги в теги open + close?
Редактировать: Для тех, кто хочет преобразовать самозакрывающиеся теги в разделенные теги, вы можете использовать этот RegEx find/replace
Найти: (<)(\w*)(.*)(/>)
Заменить: <$2$3></$2>
[Здесь используется .NET regEx Engine, используемый в TextCrawler3. Другие движки могут использовать другой формат; экспериментируйте]. Сохраняются все атрибуты в исходном теге, если таковые имеются
- www.w3schools.com
Здравствуйте, я использую библиотеку, но получаю ошибку в easyxmlnode.mqh о недопустимом указателе в этой функции:
CEasyXmlNode *CEasyXmlNode::createSibling(CEasyXmlNode *pSiblingNode)
{
pSiblingNode.Prev(GetPointer(this));
GetPointer(this).Next(pSiblingNode);
ParentNode.createChild(pSiblingNode);
return ParentNode.LastChild();
} Вы знаете, как я могу решить эту ошибку?
Вы знаете, как я могу решить эту ошибку?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
EasyXML - XML Parser:
EasyXML - это MQL5-библиотека для парсинга XML-документов.
Она может обрабатывать XML-документы из трех разных источников: URL, файл и cтрока. Библиотека является полностью объектно-ориентированной и аккуратно интегрируется с MQL5 за счет использования классов CObject и CArrayObj Стандартной библиотеки для хранения DOM-дерева.
Результат работы скрипта:Автор: Paul van Hemmen