tinyxml2读写xml代码
时间: 2024-05-09 20:21:19 浏览: 100
以下是一个使用tinyxml2库读写XML文件的示例代码:
```c++
#include <iostream>
#include <tinyxml2.h>
using namespace tinyxml2;
int main()
{
XMLDocument doc;
// 加载XML文件
if (doc.LoadFile("test.xml") != XML_SUCCESS)
{
std::cout << "Failed to load file." << std::endl;
return 1;
}
// 获取根节点
XMLElement* root = doc.RootElement();
if (root == nullptr)
{
std::cout << "Failed to get root element." << std::endl;
return 1;
}
// 遍历子节点
for (XMLElement* ele = root->FirstChildElement(); ele != nullptr; ele = ele->NextSiblingElement())
{
std::cout << "Element name: " << ele->Name() << std::endl;
// 获取属性
const char* attr = ele->Attribute("id");
if (attr != nullptr)
{
std::cout << "Attribute: " << attr << std::endl;
}
// 获取文本内容
const char* text = ele->GetText();
if (text != nullptr)
{
std::cout << "Text: " << text << std::endl;
}
}
// 创建新的节点
XMLElement* newEle = doc.NewElement("book");
newEle->SetAttribute("id", "3");
newEle->LinkEndChild(doc.NewText("The Catcher in the Rye"));
root->LinkEndChild(newEle);
// 保存XML文件
if (doc.SaveFile("test.xml") != XML_SUCCESS)
{
std::cout << "Failed to save file." << std::endl;
return 1;
}
return 0;
}
```
这个示例代码打开一个名为test.xml的XML文件,遍历其子节点并输出其名称、属性和文本内容。然后,它创建一个新的节点并将其添加到根节点中,最后保存更改后的XML文件。
阅读全文