libxml2 не заменяет сущности по умолчанию, вы должны включить это при создании xmlReader.
Этот код имеет пример
http://xmlsoft.org/examples/reader2.c
Документы для XML_PARSE_NOENT здесь;
http://xmlsoft.org/html/libxml-parser.html
Хотя прошло уже некоторое время с тех пор, как я использовал биты сущностей из libxml2, я вспоминаю, что нужно было что-то сделать, чтобы установить распознаватель сущностей по умолчанию. Документы на это здесь;
http://xmlsoft.org/xmlio.html
Если это не сработает, пожалуйста, ответьте мне, и я поищу в источнике фото Бриско, мне пришлось с этим справиться ...
Несмотря на то, что сообщение в блоге слишком длинное, я думаю, что пример отсюда
http://bill.dudney.net/roller/objc/entry/libxml2_push_parsing
может быть также включен компонент сущностей, но это было так давно, что я забыл, и у меня сейчас нет времени, чтобы вернуться к нему.
Удачи!