XML ниже представляет сообщение FIX. Это сообщение имеет переменное количество полей (пронумерованных с использованием тега id), каждый из которых содержит разные атрибуты. Поэтому я хотел бы проанализировать этот XML и с моими дополнительными возможностями кодирования выводить объект сообщения C++, который включает всю информацию об атрибутах в поле.
Первый вопрос: be- есть библиотека ускорения, которую я могу использовать для этого? Мой второй вопрос был бы тем, что является интерфейсом между тем, что может предоставить парсер XML, и где мне нужно писать код для создания объектов. Так, например, в XML на строке 8 есть <delta/>
и это атрибут объекта. Таким образом, для поля 52 (строка 8) атрибут будет объектом подтипа Delta, но для строки 9 атрибут будет объектом подтипа Copy. Я хотел бы сохранить эти подтипы в std::unordered_map
с идентификатором поля, являющимся ключом.
Я предполагаю, что другой способ формулировки этого is-, какой "конечный результат" будет содержать синтаксический анализатор XML, чтобы помочь мне построить объекты так, как я их хочу?
Вероятно, вы должны использовать один из многих часто используемых синтаксических анализаторов xml, Xerces и TinyXML - две возможности. Их больше. Google - ваш друг.
Вы хотите работать в режиме SAX, а не в режиме DOM (документация для выбранного вами парсера объяснит). Это означает, что парсер будет вызывать код, который вы указываете для каждого элемента, и атрибут, который он анализирует, а не создавать произвольную структуру в памяти, которая не соответствует вашим потребностям, специфичным для домена.