代码综合XSD解析/数据绑定xml字符串而不是xml文件

时间:2012-04-05 01:57:04

标签: c++ xml xsd xml-parsing codesynthesis

我已经看过各地的教程,用于解释如果在系统上的文件中提供xml,如何使Code Synthesis xsd工作,但是我无法找到任何关于将xml作为字符串提供的信息。

我正在从TCP连接接收xml,我正在尝试使用Code Synthesis xsd解析它,当我已经将它作为字符串存储在内存中时,它似乎是一个无用的额外步骤来创建一个xml文件。 / p>

是的,这是在C ++中。

1 个答案:

答案 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.