Я работаю над проектом, чтобы добавить функциональность экспорта 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? Если это так, я хотел бы увидеть пример.
В качестве альтернативы, есть ли другая библиотека, которая позволила бы мне сделать это более простым способом?
Спасибо!
Я пытался заставить COLLADA DOM работать довольно долго, но в конце концов сдался и решил использовать libxml2 вместо. Он хорошо документирован и так же прост в использовании, и не добавляет много дополнительных зависимостей, так как он предустановлен во многих UNIX-подобных системах.
Других решений пока нет …