tinyxml2遍历所有节点及对应属性
时间: 2024-05-05 08:20:15 浏览: 156
以下是使用tinyxml2遍历所有节点及对应属性的示例代码:
```c++
#include <iostream>
#include "tinyxml2.h"
using namespace std;
using namespace tinyxml2;
void printElement(XMLElement* element)
{
cout << "Element: " << element->Name() << endl;
// 遍历属性
for (const XMLAttribute* attr = element->FirstAttribute(); attr != nullptr; attr = attr->Next())
{
cout << "Attr: " << attr->Name() << " = " << attr->Value() << endl;
}
// 遍历子节点
for (XMLElement* child = element->FirstChildElement(); child != nullptr; child = child->NextSiblingElement())
{
printElement(child);
}
}
int main()
{
XMLDocument doc;
doc.LoadFile("example.xml");
if (doc.Error())
{
cout << "Error loading XML file." << endl;
return 1;
}
XMLElement* root = doc.FirstChildElement();
if (root == nullptr)
{
cout << "Error: no root element found." << endl;
return 1;
}
printElement(root);
return 0;
}
```
在此示例中,我们定义了一个名为printElement的递归函数,该函数遍历给定元素的所有属性和子节点。然后,我们在主函数中加载XML文件并获取根元素,然后调用printElement函数将根元素传递给它。printElement函数递归地遍历根元素及其子元素,打印每个元素的名称和属性。
阅读全文