【发布时间】:2015-02-12 10:52:48
【问题描述】:
我需要使用 c++ 中的代码合成来更改现有 XML 的一些值。
例如我有这个:
<person>
<name>"Paul"</name>
</person>
现在我需要将其更改为“Chris”。
我曾多次使用代码合成进行解析,但从未写入 XML。
p.s 是的,我已经使用“生成序列化”选项编译了我的 XSD。
谢谢
【问题讨论】:
我需要使用 c++ 中的代码合成来更改现有 XML 的一些值。
例如我有这个:
<person>
<name>"Paul"</name>
</person>
现在我需要将其更改为“Chris”。
我曾多次使用代码合成进行解析,但从未写入 XML。
p.s 是的,我已经使用“生成序列化”选项编译了我的 XSD。
谢谢
【问题讨论】:
根据 person 元素的模式类型生成的 C++ 类可能具有用于设置名称的成员函数:
void name(const ::xml_schema::string& s);
然后您就可以将名称更改为 Chris,如下所示:
person.name("Chris");
您可以在 C++/树映射入门指南中找到更多信息。见第2.5章:Adding Serialization。
还有一个小代码示例,将 XML 文件读入 Codesynthesis 数据模型,然后修改一些值,最后将其序列化回 XML。请参阅library example。
【讨论】:
std::ofstream ofs (argv[1]); 行:Adding Serialization