我已经看过各地的教程,用于解释如果在系统上的文件中提供xml,如何使Code Synthesis xsd工作,但是我无法找到任何关于将xml作为字符串提供的信息。
我正在从TCP连接接收xml,我正在尝试使用Code Synthesis xsd解析它,当我已经将它作为字符串存储在内存中时,它似乎是一个无用的额外步骤来创建一个xml文件。 / p>
是的,这是在C ++中。
答案 0 :(得分: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.