TinyXML-2解析XML只需三步:加载文档→查找节点→提取数据;轻量、头文件即用、无依赖,适合嵌入式或中小型项目。
用 TinyXML-2 解析 XML 很简单,核心就三步:加载文档 → 查找节点 → 提取数据。它轻量、头文件即用、不依赖其他库,适合嵌入式或中小型项目。
下载 tinyxml2.h 和 tinyxml2.cpp(官网或 GitHub 可得),直接加入你的工程。C++ 项目只需:
假设你有如下 config.xml:
MyTool 2.1
代码这样写:
tinyxml2::XMLDocument doc;
XMLError err = doc.LoadFile("config.xml");
if (err != XML_SUCCESS) {
std::cerr << "加载失败:" << doc.ErrorName() << std::endl;
return;
}
tinyxml2::XMLElement* root = doc.RootElement(); //
if (!root) return;
const char name = root->FirstChildElement("name")->GetText(); // "MyTool"
const char ver = root->FirstChildElement("version")->GetText(); // "2.1"
tinyxml2::XMLElement* debug = root->FirstChildElement("debug");
bool isDebug = debug && std::string(debug->Attribute("enabled")) == "true";
构建并保存也很直观:
tinyxml2::XMLDocument doc;
auto* root = doc.NewElement("log");
doc.InsertFirstChild(root);
auto* item = doc.NewElement("entry");
item->SetText("Startup completed");
root->InsertEndChild(item);
doc.SaveFile("output.xml"); // 自动缩进,可读性强
基本上就这些。不复杂但容易忽略空指针检查——多写两行 if,省去调试半小时。