C++之如何使用tinyxml库读取XML文件

 时间:2024-10-27 18:43:49

1、下载tinyxml库,这里使用的是tinyxml2_6_2版本。

C++之如何使用tinyxml库读取XML文件

2、解压tinyxml2_6_2,然后在该目录下找到这六个文件。

C++之如何使用tinyxml库读取XML文件

3、把这六个文件放在你新建工程main.cpp目录下

C++之如何使用tinyxml库读取XML文件

4、然后把这六个文件导入vs2013编译器中

C++之如何使用tinyxml库读取XML文件

5、新建task3.cpp文件

C++之如何使用tinyxml库读取XML文件

6、把#include"tinystr.h"和#include"tinyxml.h"这两个头文件添加进去

C++之如何使用tinyxml库读取XML文件

7、把测试代码写入task3.cpp中。测试代码如下:#include"tinystr.h"#include"tinyxml.h"#include<iostream>using namespace std;#define SUCCESS 1#define FAILED 0int loadXml();int main(){ if (loadXml()) { getchar(); return 1; } getchar(); return 0;}int loadXml(){ //创建两个个xml文档对象,一个为读取,一个为输出 TiXmlDocument *inXml = new TiXmlDocument(); TiXmlDocument *outXml = new TiXmlDocument(); //加载xml文件 if (!inXml->LoadFile("a.xml")) //判断XML文件是否加载成功 { cerr << inXml->ErrorDesc() << endl; return 0; } //定义根节点,记录xml文件的起始节点 TiXmlElement *inRoot = inXml->FirstChildElement(); //root指向xml文档的第一个节点 inXml->Value();//获取的值为文件名 //定义根节点并连接,将输入的根节点传给输出的根节点 TiXmlElement *outRoot = new TiXmlElement(inRoot->Value()); outXml->LinkEndChild(outRoot); if (NULL == inRoot) //判断文件是否有内容 { cerr << "No root element !!!" << endl; inXml->Clear(); return 0; } //循环遍历每个节点 for (TiXmlElement *inElem = inRoot->FirstChildElement(); inElem != NULL; inElem = inElem->NextSiblingElement()) { TiXmlElement *outElem = new TiXmlElement(inElem->Value()); outRoot->LinkEndChild(outElem); const char *name = inElem->Value();//获取源文件中子节点的名字 outElem->SetValue(name); //设置目的文件子节点的名字 //获取源文件的属性,设置目标文件的属性 const char *rName = inElem->Attribute("name"); outElem->SetAttribute("name", rName); const char *rType = inElem->Attribute("type"); outElem->SetAttribute("type", rType); const char *rSize = inElem->Attribute("size"); outElem->SetAttribute("size", rSize); const char *rOdd = inElem->Attribute("odd"); outElem->SetAttribute("odd", rOdd); if (strcmp(name, "0"))//name值是否为空 { for (TiXmlElement *inChild = inElem->FirstChildElement(); inChild != NULL; inChild = inChild->NextSiblingElement()) { TiXmlElement *outChild = new TiXmlElement(inChild->Value()); outElem->LinkEndChild(outChild); const char *cName = inChild->Attribute("name"); outChild->SetAttribute("name", cName); const char *cType = inChild->Attribute("type"); outChild->SetAttribute("type", cType); const char *cRatio = inChild->Attribute("ratio"); outChild->SetAttribute("ratio", cRatio); const char *cLink = inChild->Attribute("link"); outChild->SetAttribute("link", cLink); } } } outXml->SaveFile("b.xml"); inXml->Clear(); outXml->Clear(); return true;}

C++之如何使用tinyxml库读取XML文件

8、在该目录下新建两个xml文件,测试代码的实现功能是:将一个xml文件中的内容复制到另一个xml文件中。然后编译运行即可。

C++之如何使用tinyxml库读取XML文件
  • Edge浏览器无痕模式怎么开启
  • 重定向次数过多网页无法运行怎么解决?
  • 手机egde怎么选择地区?
  • 文明6怎么提高生产力
  • edge搜索引擎怎么改
  • 热门搜索
    牙齿手抄报 感恩父母手抄报图片 关于夏天的手抄报 勿忘国耻手抄报 清明节手抄报全国第一 环保手抄报模板 春天的脚步手抄报 关于反邪教的手抄报 小学生文明手抄报 父亲节手抄报简单漂亮