В приложении GTK я использую xmlParseFile()
из libxml2. Однако эта функция может читать только локальные файлы. Как я могу вместо этого заставить его использовать инфраструктуру GIO, чтобы он мог также читать удаленные файлы?
Самый простой способ - это использовать что-то вроде g_file_load_contents()
, чтобы прочитать весь файл в память, а затем вызвать xmlParseMemory()
, чтобы проанализировать это. Тем не менее, я ищу «более приятное» решение, которое в идеале обеспечивает потоковую передачу данных (чтобы не хранить все данные в памяти); возможно, подключив GInputStream
к libxml2?
Примеры кода приветствуются. Я предполагаю, что это распространенный вариант использования, поэтому здесь может быть полезен сбор исчерпывающего списка хороших реализаций.