tinyxml2 开源库与 VS2010 结合使用
下面是 tinyxml2 开源库与 VS2010 结合使用的简单例子,包含环境配置和基础操作:
一、环境配置
1. 下载 tinyxml2
从官网(leethomason/tinyxml2)下载源码,解压后得到 tinyxml2.h 和 tinyxml2.cpp 两个文件。
2. 在 VS2010 中配置
- 新建空项目(Win32 控制台应用程序)。
- 将 tinyxml2.h 和 tinyxml2.cpp 复制到项目目录下,右键项目 →“添加”→“现有项”,将两个文件添加到项目中。
二、使用示例(创建并读取 XML)
cpp
#include <iostream>
#include "tinyxml2.h"
using namespace tinyxml2;
using namespace std;
int main() {
// 1. 创建 XML 文档
XMLDocument doc;
// 添加声明(<?xml version="1.0" encoding="UTF-8"?>)
XMLDeclaration* decl = doc.NewDeclaration();
doc.InsertFirstChild(decl);
// 2. 创建根节点 <Students>
XMLElement* root = doc.NewElement("Students");
doc.InsertAfterChild(decl, root);
// 3. 添加子节点 <Student> 及属性、内容
XMLElement* student1 = doc.NewElement("Student");
student1->SetAttribute("ID", "001"); // 设置属性
root->InsertEndChild(student1);
XMLElement* name1 = doc.NewElement("Name");
name1->SetText("张三"); // 设置文本内容
student1->InsertEndChild(name1);
XMLElement* age1 = doc.NewElement("Age");
age1->SetText(18);
student1->InsertEndChild(age1);
// 再添加一个学生节点
XMLElement* student2 = doc.NewElement("Student");
student2->SetAttribute("ID", "002");
root->InsertEndChild(student2);
XMLElement* name2 = doc.NewElement("Name");
name2->SetText("李四");
student2->InsertEndChild(name2);
XMLElement* age2 = doc.NewElement("Age");
age2->SetText(20);
student2->InsertEndChild(age2);
// 4. 保存 XML 到文件
doc.SaveFile("Students.xml");
cout << "XML 文件创建成功!" << endl;
// 5. 读取并解析 XML 文件
XMLDocument readDoc;
XMLError err = readDoc.LoadFile("Students.xml");
if (err != XML_SUCCESS) {
cout << "读取 XML 失败!" << endl;
return 1;
}
// 获取根节点
XMLElement* readRoot = readDoc.RootElement();
// 遍历所有 Student 节点
XMLElement* student = readRoot->FirstChildElement("Student");
while (student) {
// 读取属性 ID
const char* id = student->Attribute("ID");
// 读取子节点内容
const char* name = student->FirstChildElement("Name")->GetText();
int age;
student->FirstChildElement("Age")->QueryIntText(&age); // 读取整数
cout << "ID: " << id << ", 姓名: " << name << ", 年龄: " << age << endl;
// 移动到下一个 Student 节点
student = student->NextSiblingElement("Student");
}
return 0;
}
三、运行结果
1. 程序会生成 Students.xml 文件,内容如下:
xml
<?xml version="1.0" encoding="UTF-8"?>
<Students>
<Student ID="001">
<Name>张三</Name>
<Age>18</Age>
</Student>
<Student ID="002">
<Name>李四</Name>
<Age>20</Age>
</Student>
</Students>
2. 控制台输出:
plaintext
XML 文件创建成功!
ID: 001, 姓名: 张三, 年龄: 18
ID: 002, 姓名: 李四, 年龄: 20
关键说明
- 核心类: XMLDocument (文档)、 XMLElement (元素节点)、 XMLAttribute (属性)等。
- 常用操作: NewElement (创建节点)、 SetAttribute (设置属性)、 SetText (设置文本)、 FirstChildElement (获取子节点)、 SaveFile / LoadFile (保存/加载文件)。
通过以上步骤,即可在 VS2010 中使用 tinyxml2 操作 XML 文件。