c++ - 代码综合XSD解析/数据绑定(bind)xml字符串而不是xml文件

标签 c++ xml xsd xml-parsing codesynthesis

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

我从 TCP 连接接收 xml,并尝试使用代码合成 xsd 解析它,当我已经将 xml 文件作为字符串存储在内存中时,创建 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.

关于c++ - 代码综合XSD解析/数据绑定(bind)xml字符串而不是xml文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10021706/

相关文章:

xml - XML 验证器如何知道在哪里可以找到在 xml 文档中声明的模式实例以便解析和使用 xsd?

c++ - 句柄类和赋值运算符

PHP - 读取和修复大的无效 XML 文件

php - 需要使用 MySQL 查询插入封装的 XML 元素

java - 如何将多个 XSD 文件合并为一个 XSD 文件?

xml - 嵌套xml命名空间的做法是什么?

c++ - 比较来自 typeid() 运算符的两个 type_info

c++ - 无法将数据插入 std::set。作为重复丢弃

c++ - 使用 OpenGL 创建多个多边形很慢?

sql-server - 从 XML FLWOR 查询返回计算的元素名称