C ++ Expat и XML-разбор - PullRequest
       5

C ++ Expat и XML-разбор

1 голос
/ 30 августа 2011

Я новичок в использовании экспата.Я пытаюсь выяснить, как XML_SetUserData предназначен для этого.В моем случае у меня есть список объектов класса А, и мне нужно заполнить этот список при разборе потока XML.

До сих пор я планировал использовать одиночный код для представления этого единого списка.Является ли XML_SetUserData устранить необходимость в моем списке быть одиночным?

1 Ответ

2 голосов
/ 30 августа 2011

Да, это так.Просто передайте XML_SetUserData указатель на любую структуру или класс, содержащий необходимое состояние, и приведите его обратно (void *) внутри вашего обработчика.

Полезный прием - определить базовый класс с помощью статических функций-членов обратного вызовапереадресация вызовов из экспата в виртуальные функции-члены.В этом сценарии XML_SetUserData предоставляет удобный механизм для передачи указателя this через статические обратные вызовы.

...