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

Output a COLLADA document as a string using COLLADA DOM

本文关键字:输出 字符串 文档 COLLADA COLLADADOM 使用      更新时间:2023-10-16

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

我遇到的问题是:我还没有找到一种方法将COLLADA文件输出为字符串,以便将其附加到VLA。我发现的所有DOM示例都可以直接处理文件,从中读取并保存到文件中,在花了几天时间梳理源代码后,我找不到一个函数可以返回DAE(COLLADA)对象的XML字符串。

例如,可以使用DOM的write()writeAll()函数将文件写入磁盘,如DOM指南中的示例:

#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的系统上预装的那样增加太多额外的依赖项。