TinyXML是一款轻量级的C++ XML解析器,具有使用简单、代码可读性好、运行速度快等特点。以下是TinyXML常用的攻略:
TinyXML的安装
首先你需要从TinyXML官网(http://www.grinninglizard.com/tinyxml/)下载最新版本的TinyXML。
然后使用以下命令进行编译安装:
tar -zxvf tinyxml_2_6_2.tar.gz
cd tinyxml
make
sudo make install
TinyXML的使用方法
引入头文件:
#include "tinyxml.h"
加载XML文件
// 加载XML文件
TiXmlDocument xmlDoc("example.xml");
xmlDoc.LoadFile();
// 获取根节点
TiXmlElement* root = xmlDoc.RootElement();
// 在根节点下查找名为 "person" 的节点
TiXmlElement* personElement = root->FirstChildElement("person");
if (personElement != nullptr) {
// 获取 person 的 name 属性
const char* name = personElement->Attribute("name");
std::cout << name << std::endl;
}
创建XML节点
// 创建一个名为 "person" 的节点并添加到根节点下
TiXmlElement* personElement = new TiXmlElement("person");
root->LinkEndChild(personElement);
// 添加一个名为 "name" 的属性到节点中
personElement->SetAttribute("name", "Tom");
// 添加一个名为 "age" 的子节点到 person 节点中
TiXmlElement* ageElement = new TiXmlElement("age");
personElement->LinkEndChild(ageElement);
// 在 age 节点下添加一个文本值 "20"
TiXmlText* ageValue = new TiXmlText("20");
ageElement->LinkEndChild(ageValue);
保存XML文件
xmlDoc.SaveFile("new.xml");
TinyXML示例
示例1:读取XML文件
假设我们有一个名为 example.xml
的XML文件,其内容如下:
<root>
<person name="Jack" />
<person name="Lucy" />
</root>
我们可以使用以下代码读取其中的节点:
#include <iostream>
#include "tinyxml.h"
int main() {
// 加载XML文件
TiXmlDocument xmlDoc("example.xml");
xmlDoc.LoadFile();
// 获取根节点
TiXmlElement* root = xmlDoc.RootElement();
// 在根节点下查找名为 "person" 的节点
TiXmlElement* personElement = root->FirstChildElement("person");
while (personElement != nullptr) {
// 获取 person 的 name 属性
const char* name = personElement->Attribute("name");
std::cout << name << std::endl;
// 获取下一个 person 节点
personElement = personElement->NextSiblingElement("person");
}
return 0;
}
输出结果为:
Jack
Lucy
示例2:写入XML文件
我们可以使用以下代码创建XML文件:
#include <iostream>
#include "tinyxml.h"
int main() {
// 创建 XML 文档
TiXmlDocument xmlDoc;
// 创建根节点
TiXmlElement* root = new TiXmlElement("root");
xmlDoc.LinkEndChild(root);
// 添加 person 节点
TiXmlElement* personElement = new TiXmlElement("person");
personElement->SetAttribute("name", "Jack");
root->LinkEndChild(personElement);
// 保存到 XML 文件
xmlDoc.SaveFile("new.xml");
return 0;
}
执行完程序后,new.xml
文件的内容为:
<root>
<person name="Jack" />
</root>
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:tinyxml 常用的C++ XML解析器非常优秀 - Python技术站