Вывести документ COLLADA в виде строки, используя COLLADA DOM

Я работаю над проектом, чтобы добавить функциональность экспорта COLLADA в существующую программу (PyMOL) и пытается использовать КОЛЛАДА ДОМ библиотека, чтобы помочь написать выходной файл. Существует существующая структура для различных функций «сохранения», которой я хотел бы следовать, в которой экспортируемый текст добавляется в массив переменной длины, который затем записывается на диск родительской функцией.

Проблема, с которой я столкнулся, заключается в следующем: я не нашел способа вывести файл COLLADA в виде строки, чтобы я мог добавить его в VLA. Все примеры DOM, которые я нашел, работают непосредственно с файлами, читая их и сохраняя в них, и, потратив несколько дней на просмотр исходного кода, я не могу найти функцию, которая возвращает строку XML для объекта DAE (COLLADA). ,

Например, можно записать файл на диск, используя DOM write() или же writeAll() функции, как этот пример из DOM Guide:

#include <dae.h>

int main() {
DAE dae;
dae.add("simple.dae");
dae.writeAll();
return 0;
}

Вместо этого я хотел бы сделать что-то вроде этого:

string generateXmlString() {
DAE dae;
dae.add("simple.dae");
string output = dae.getXml("simple.dae");  // this function doesn't exist
return output;
}

где строка XML генерируется и вместо этого либо назначается переменной, либо возвращается напрямую, а не записывается в файл.

Есть ли способ сделать это с помощью COLLADA DOM? Если это так, я хотел бы увидеть пример.

В качестве альтернативы, есть ли другая библиотека, которая позволила бы мне сделать это более простым способом?

Спасибо!

1

Решение

Я пытался заставить COLLADA DOM работать довольно долго, но в конце концов сдался и решил использовать libxml2 вместо. Он хорошо документирован и так же прост в использовании, и не добавляет много дополнительных зависимостей, так как он предустановлен во многих UNIX-подобных системах.

1

Другие решения

Других решений пока нет …