【问题标题】:Change XML value using Code Synthesis c++使用代码合成 c++ 更改 XML 值
【发布时间】:2015-02-12 10:52:48
【问题描述】:

我需要使用 c++ 中的代码合成来更改现有 XML 的一些值。

例如我有这个:

<person>
  <name>"Paul"</name>
</person>

现在我需要将其更改为“Chris”。

我曾多次使用代码合成进行解析,但从未写入 XML。

p.s 是的,我已经使用“生成序列化”选项编译了我的 XSD。

谢谢

【问题讨论】:

    标签: c++ xml xerces-c


    【解决方案1】:

    根据 person 元素的模式类型生成的 C++ 类可能具有用于设置名称的成员函数:

    void name(const ::xml_schema::string& s);
    

    然后您就可以将名称更改为 Chris,如下所示:

    person.name("Chris");
    

    您可以在 C++/树映射入门指南中找到更多信息。见第2.5章:Adding Serialization

    还有一个小代码示例,将 XML 文件读入 Codesynthesis 数据模型,然后修改一些值,最后将其序列化回 XML。请参阅library example

    【讨论】:

    • nice.Thank you,我缺少的是,如果我需要实际更改我的 xml 文件,我需要再次将其加载到 stringstream,然后将其写入文件。虽然我正确地操作了我的 xml 对象的数据!
    • 现在可以正常工作了。您可以使用 std::ofstream 直接写入文件,而不是先写入 std::stringstream。例如,参见第 2.5 章中的std::ofstream ofs (argv[1]); 行:Adding Serialization
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    相关资源
    最近更新 更多