【问题标题】:Output a COLLADA document as a string using COLLADA DOM使用 COLLADA DOM 将 COLLADA 文档输出为字符串
【发布时间】:2014-01-14 15:45:03
【问题描述】:

我正在开发一个项目,将 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 做到这一点?如果是这样,我很乐意看到一个例子。

或者,是否有另一个库可以让我以更直接的方式完成此任务?

谢谢!

【问题讨论】:

  • 你看过 pycollada 吗?
  • @jterrace 是的,虽然我实际上并没有尝试在这个项目中使用它。我正在尝试遵循 PyMOL 的一些其他导出函数的形式,它们是基于 C 的,以与现有代码库保持一致。如果我不能让 Collada DOM 工作,我可能会切换到 pycollada。
  • 祝你好运,对COLLADA-DOM不太了解,但发现它无法使用,这就是我接手pycollada dev的原因

标签: c++ xml dom collada


【解决方案1】:

我尝试让 COLLADA DOM 工作了很长一段时间,但最终放弃并决定改用 libxml2。它有详细的文档并且易于使用,并且不会增加额外的依赖项,因为它已预安装在许多类 UNIX 系统上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 2010-11-28
    • 2011-03-27
    • 2012-02-22
    • 2011-08-12
    • 2012-09-26
    • 1970-01-01
    相关资源
    最近更新 更多