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

标签 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 来做到这一点?如果是这样,我很想看一个例子。

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

谢谢!

最佳答案

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

关于c++ - 使用 COLLADA DOM 将 COLLADA 文档输出为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20794097/

相关文章:

c++ - 获取当前聚焦窗口的可执行名称?

c++ - 如何在源文件中使用头文件中声明的全局变量?

java - 简单的 XML 序列化程序无法满足元素

sql - 如何在sql server 2005中给xml节点添加属性

dom - .on() 未检测到 dom 更改

javascript - 使用 jQuery 追加 html 元素 - html、DOM 和 jQuery 追加之间的区别?

javascript - 从 DOM 中分离对象内容,添加其他内容,然后 append 到 DOM

c++ - 解析为类(不是结构)

c++ - 使用getline分割输入,使用逗号作为delim

c# - SelectSingleNode 使用 XPath 为已知良好的 xml 节点路径返回 null