2

如果您在系统上的文件中提供 xml,我到处都看到了解释如何让代码合成 xsd 工作的教程,但是我找不到任何关于将 xml 作为字符串提供的信息。

我正在从 TCP 连接接收 xml,并尝试使用 Code Synthesis xsd 对其进行解析,当我已经将它作为字符串保存在内存中时,创建 xml 文件似乎是一个无用的附加步骤。

是的,这是在 C++ 中。

4

1 回答 1

2

您可以使用 std::istringstream 使字符串显示为 std::istream 然后解析:

#include <sstream>

std::string str = ... // Input XML in a string.
std::istringstream istr (str);

std::auto_ptr<root_type> r = root (istr);

这里 root_type 是类型,root 是 XML 根元素的名称。除了使用 std::ostringstream 之外,相同的方法适用于序列化:

#include <sstream>

std::ostringstream ostr;

root (ostr, *r, ...);
std::string str = ostr.str () // Output XML in a string.
于 2012-04-06T11:24:00.007 回答