Как создать объект из анализа данных FIX XML в C ++?

0

XML ниже представляет сообщение FIX. Это сообщение имеет переменное количество полей (пронумерованных с использованием тега id), каждый из которых содержит разные атрибуты. Поэтому я хотел бы проанализировать этот XML и с моими дополнительными возможностями кодирования выводить объект сообщения C++, который включает всю информацию об атрибутах в поле.

Изображение 174551

Первый вопрос: be- есть библиотека ускорения, которую я могу использовать для этого? Мой второй вопрос был бы тем, что является интерфейсом между тем, что может предоставить парсер XML, и где мне нужно писать код для создания объектов. Так, например, в XML на строке 8 есть <delta/> и это атрибут объекта. Таким образом, для поля 52 (строка 8) атрибут будет объектом подтипа Delta, но для строки 9 атрибут будет объектом подтипа Copy. Я хотел бы сохранить эти подтипы в std::unordered_map с идентификатором поля, являющимся ключом.

Я предполагаю, что другой способ формулировки этого is-, какой "конечный результат" будет содержать синтаксический анализатор XML, чтобы помочь мне построить объекты так, как я их хочу?

Теги:
fix

1 ответ

0

Вероятно, вы должны использовать один из многих часто используемых синтаксических анализаторов xml, Xerces и TinyXML - две возможности. Их больше. Google - ваш друг.

Вы хотите работать в режиме SAX, а не в режиме DOM (документация для выбранного вами парсера объяснит). Это означает, что парсер будет вызывать код, который вы указываете для каждого элемента, и атрибут, который он анализирует, а не создавать произвольную структуру в памяти, которая не соответствует вашим потребностям, специфичным для домена.

  • 0
    Я только что натолкнулся на Boost.PropertyTree, что вы думаете по этому поводу? akrzemi1.wordpress.com/2011/07/13/parsing-xml-with-boost
  • 0
    Я использовал дерево свойств boost. У меня смешанные эмоции, связанные с набором свойств - он пытается поддерживать XML, JSON, .INI (и, возможно, другие) и страдает от некоторых проблем "наименьшего общего знаменателя", но, кроме того, это нормально. Тем не мение...
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню