tinyxml使用详解
时间: 2023-12-20 07:22:34 浏览: 133
tinyxml的使用
TinyXML是一个小型的、简单易用的XML解析器,适用于C++环境。它的主要特点是简单易用、轻量级、跨平台、可移植性强。本文将介绍TinyXML的使用方法。
## TinyXML的安装
TinyXML的安装非常简单,只需要下载TinyXML的源代码,并将其包含到你的项目中即可。TinyXML的源代码可以在其官方网站(http://www.grinninglizard.com/tinyxml/)上下载。
## TinyXML的基本用法
TinyXML的使用非常简单,只需要包含TinyXML头文件,并使用其提供的API即可完成XML文件的解析和生成。
### 解析XML文件
以下是一个简单的XML文件example.xml:
```
<?xml version="1.0" encoding="UTF-8"?>
<root>
<person>
<name>John</name>
<age>20</age>
</person>
<person>
<name>Jane</name>
<age>21</age>
</person>
</root>
```
我们可以使用如下代码来解析该XML文件:
```c++
#include "tinyxml.h"
#include <iostream>
using namespace std;
int main()
{
TiXmlDocument doc("example.xml");
bool loadOkay = doc.LoadFile();
if (loadOkay)
{
TiXmlNode* root = doc.FirstChild("root");
if (root)
{
for (TiXmlNode* node = root->FirstChild(); node; node = node->NextSibling())
{
if (node->Type() == TiXmlNode::TINYXML_ELEMENT && strcmp(node->Value(), "person") == 0)
{
TiXmlNode* nameNode = node->FirstChild("name");
TiXmlNode* ageNode = node->FirstChild("age");
if (nameNode && ageNode)
{
cout << "name:" << nameNode->FirstChild()->Value() << endl;
cout << "age:" << ageNode->FirstChild()->Value() << endl;
}
}
}
}
}
return 0;
}
```
上述代码首先创建了一个TiXmlDocument对象,并调用其LoadFile方法加载example.xml文件。如果加载成功,则获取XML文档的根节点,并循环遍历根节点的所有子节点,查找名称为“person”的节点,并获取其下的“name”和“age”子节点的值。
### 生成XML文件
我们可以使用TinyXML来生成XML文件。以下是一个简单的示例:
```c++
#include "tinyxml.h"
#include <iostream>
using namespace std;
int main()
{
TiXmlDocument doc;
TiXmlElement* root = new TiXmlElement("root");
doc.LinkEndChild(root);
for (int i = 0; i < 3; i++)
{
TiXmlElement* person = new TiXmlElement("person");
root->LinkEndChild(person);
TiXmlElement* name = new TiXmlElement("name");
person->LinkEndChild(name);
TiXmlText* nameText = new TiXmlText("John");
name->LinkEndChild(nameText);
TiXmlElement* age = new TiXmlElement("age");
person->LinkEndChild(age);
TiXmlText* ageText = new TiXmlText("20");
age->LinkEndChild(ageText);
}
doc.SaveFile("example.xml");
return 0;
}
```
上述代码创建了一个TiXmlDocument对象,并创建了一个名为“root”的根节点。然后循环生成三个名为“person”的节点,并为每个节点添加名为“name”和“age”的子节点,并设置其值。最后,调用TiXmlDocument的SaveFile方法将生成的XML文件保存到example.xml中。
## 小结
TinyXML是一个简单易用的XML解析器,适用于C++环境,其主要特点是简单易用、轻量级、跨平台、可移植性强。使用TinyXML可以轻松地解析和生成XML文件。
阅读全文