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

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

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

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

1 ответ

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

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

Другие вопросы по тегам