使用tinyxml2库写一个将对象序列化为 XML 格式的函数
时间: 2023-12-03 22:44:23 浏览: 82
使用tinyxml的库
4星 · 用户满意度95%
好的,以下是一个将对象序列化为 XML 格式的示例函数:
```cpp
#include <tinyxml2.h>
#include <string>
using namespace tinyxml2;
class Person {
public:
Person() {}
Person(const std::string& name, int age) : name_(name), age_(age) {}
std::string name() const { return name_; }
int age() const { return age_; }
private:
std::string name_;
int age_;
};
void SerializeToXml(const Person& person, const std::string& filename) {
XMLDocument doc;
XMLElement* root = doc.NewElement("Person");
doc.InsertEndChild(root);
XMLElement* name = doc.NewElement("Name");
name->SetText(person.name().c_str());
root->InsertEndChild(name);
XMLElement* age = doc.NewElement("Age");
age->SetText(person.age());
root->InsertEndChild(age);
doc.SaveFile(filename.c_str());
}
```
该函数使用了 C++ 的 TinyXML2 库来生成 XML 格式的文档。在该示例中,我们定义了一个名为 Person 的类,并实现了一个将类对象序列化为 XML 格式的函数 SerializeToXml。该函数将一个 Person 对象和一个文件名作为输入参数,并将其序列化为 XML 格式的文件。在 SerializeToXml 函数中,我们首先创建 XMLDocument 对象,并创建一个名为 "Person" 的根元素。接着,我们创建两个子元素 "Name" 和 "Age",并将类对象的 name 和 age 属性分别赋值给这两个子元素。最后,我们将根元素添加到文档中,并将文档保存为指定的文件名。
阅读全文