使用COLLADA DOM将COLLADA文档输出为字符串

时间:2013-12-27 02:54:45

标签: c++ xml dom collada

我正在开发一个项目,将COLLADA导出功能添加到现有程序(PyMOL),并尝试使用COLLADA DOM库来帮助编写输出文件。我想要遵循各种“保存”函数的现有结构,其中要导出的文本附加到可变长度数组,然后由父函数将其写入磁盘。

我遇到的麻烦是:我没有找到将COLLADA文件输出为字符串的方法,因此我可以将其附加到VLA。我发现的所有DOM示例都直接使用文件,读取和保存它们,并且经过几天梳理源代码后,我找不到一个函数来返回DAE(COLLADA)对象的XML字符串。

例如,可以使用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 个答案:

答案 0 :(得分:1)

我试图让COLLADA DOM工作很长一段时间,但最终放弃并决定使用libxml2代替。它具有良好的文档记录,同样易于使用,并且不会增加额外的依赖性,因为它预装在许多类UNIX系统上。