创建xml的方式_XML编辑器

创建xml的方式_XML编辑器TinyXML2读取和创建XML文件 分类: C/C++ 2015-03-14 13:29 94

TinyXML2读取和创建XML文件 分类: C/C++ 2015-03-14 13:29 94人阅读 评论(0) 收藏       TinyXML2是simple、small、efficient C++ XML文件解析库!方便易于使用,是对TinyXML的升级改写!源码见本人上传到CSDN的TinyXML2.rar资源:http://download.csdn.net/detail/k346k346/,或者到官网下载:https://github.com/leethomason/tinyxml2。       使用方法:将tinyxml2.cpp和tinyxml2.h拷贝至项目目录,使用时包含#include “tinyxml2.h”和using namespace tinyxml2;       1.创建XML文件。注意:xml文件必须先创建,可由fopen()进行创建,再交由XMLDocument进行写入操作。   int createTinyXML2(string xmlPath)   {   FILE* fp=NULL;   fp=fopen(xmlPath.c_str(),”w+”);//创建空xml文件   fclose(fp);   XMLDocument doc;   doc.LoadFile(xmlPath);//载入xml文件   XMLDeclaration* declaration=doc.NewDeclaration();//添加xml文件头申明   doc.InsertFirstChild(declaration);   XMLElement *Root = doc.NewElement(“Root”);   doc.InsertEndChild(Root);   //insert Head   XMLElement* Head=doc.NewElement(“Head”);   Root->InsertEndChild(Head);   //insert Create_Time   time_t rawtime;//time_t为long型   time(&rawtime);//从1970.1.1起的秒数   struct tm *temp = localtime(&rawtime);   char time_str[32];   sprintf(time_str, “%04d-%02d-%02d %02d:%02d:%02d”, temp->tm_year + 1900, temp->tm_mon + 1, temp->tm_mday,   temp->tm_hour, temp->tm_min, temp->tm_sec);   XMLElement* Create_Time = doc.NewElement(“Create_Time”);   Create_Time->InsertFirstChild(doc.NewText(time_str));   Head->InsertEndChild(Create_Time);   //insert Algorithm   XMLElement* Algorithm = doc.NewElement(“Algorithm”);   Algorithm->InsertFirstChild(doc.NewText(“MD5”));   Algorithm->SetAttribute(“ID”,1);   Head->InsertEndChild(Algorithm);   //insert cipher_Num   XMLElement* Cipher_Num = doc.NewElement(“Cipher_Num”);   Cipher_Num->InsertFirstChild(doc.NewText(“500”));   Cipher_Num->SetAttribute(“ID”,2);   Head->InsertEndChild(Cipher_Num);   int targetNum=3;   while (targetNum)   {   //insert Target   Root->InsertEndChild(doc.NewElement(“Target”));   XMLElement* Target = Root->LastChildElement(“Target”);   //insert HashValue to Target Node   XMLElement* HashValue = doc.NewElement(“HashValue”);   HashValue->InsertFirstChild(doc.NewText(“5555”));   Target->InsertEndChild(HashValue);   //insert Salt to Target Node   XMLElement* Salt = doc.NewElement(“Salt”);   Salt->InsertFirstChild(doc.NewText(“555”));   Target->InsertEndChild(Salt);   targetNum–;   }   int result=doc.SaveFile(xmlPath.c_str());   return result;   }   结果截图:   
创建xml的方式_XML编辑器
创建xml的方式_XML编辑器   
创建xml的方式_XML编辑器   2.读取XML文件   int readTinyXML2(string xmlPath)   {   XMLDocument doc;   doc.LoadFile(xmlPath.c_str());   if(doc.Error())   {   cout<<“Read “<<xmlPath<<” file failed! “<<endl;   return -1;   }   XMLElement *root = doc.RootElement();   XMLElement *Head=root->FirstChildElement(“Head”);   XMLElement *HeadChildNode=Head->FirstChildElement(“Create_Time”);   string Create_Time=HeadChildNode->GetText();   HeadChildNode=Head->FirstChildElement(“Algorithm”);   string Algorithm=HeadChildNode->GetText();   string AlgorithmID=HeadChildNode->Attribute(“ID”);   HeadChildNode=Head->FirstChildElement(“Cipher_Num”);   string Cipher_Num=HeadChildNode->GetText();   string Cipher_NumID=HeadChildNode->Attribute(“ID”);   XMLElement *Target=root->FirstChildElement(“Target”);   XMLElement *TargetChildNode=NULL;   int targetNum=3;   char hash[3][32]={NULL};   char salt[3][32]={NULL};   for(int i=0;i<targetNum;i++)   {   TargetChildNode=Target->FirstChildElement(“HashValue”);   strcpy(hash[i],TargetChildNode->GetText());   TargetChildNode=Target->FirstChildElement(“Salt”);   strcpy(salt[i],TargetChildNode->GetText());   Target=Target->NextSiblingElement(“Target”);   }   //verify the read result from xml   std::cout<<“Create_Time:”<<Create_Time<<endl;   std::cout<<“Algorithm:”<<Algorithm<<” ID:”<<AlgorithmID<<endl;   std::cout<<“Cipher_Num:”<<Cipher_Num<<” ID:”<<Cipher_NumID<<endl;   for(int i=0;i<targetNum;i++)   {   std::cout<<“hash[“<<i<<“]:”<<hash[i]<<endl;   std::cout<<“salt[“<<i<<“]:”<<salt[i]<<endl;   }   return 0;   }   读取结果:   
创建xml的方式_XML编辑器   版权声明:本文为博主原创文章,未经博主允许不得转载。

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/77127.html

(0)
上一篇 2024年 8月 3日
下一篇 2024年 8月 3日

相关推荐

关注微信