如果您在系统上的文件中提供 xml,我到处都看到了解释如何让代码合成 xsd 工作的教程,但是我找不到任何关于将 xml 作为字符串提供的信息。
我正在从 TCP 连接接收 xml,并尝试使用 Code Synthesis xsd 对其进行解析,当我已经将它作为字符串保存在内存中时,创建 xml 文件似乎是一个无用的附加步骤。
是的,这是在 C++ 中。
如果您在系统上的文件中提供 xml,我到处都看到了解释如何让代码合成 xsd 工作的教程,但是我找不到任何关于将 xml 作为字符串提供的信息。
我正在从 TCP 连接接收 xml,并尝试使用 Code Synthesis xsd 对其进行解析,当我已经将它作为字符串保存在内存中时,创建 xml 文件似乎是一个无用的附加步骤。
是的,这是在 C++ 中。
您可以使用 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.