tiny xml_解析xml文件的标签内容

tiny xml_解析xml文件的标签内容XML解析器(TinyXML)的使用指南(转)XML解析器(TinyXML)的使用指南作者:thelONE  来源www.sqlite.com.cn最近软件体系结构课的一个大作业挺难的,要做很多的东西,比如网络连接,视频播放,XML等工作. 这里我给大家提供一个关于XML文件的解析方法的引导, 大

XML解析器(TinyXML)的使用指南(转)   XML解析器(TinyXML)的使用指南   作者:thelONE  来源   www.sqlite.com.cn   最近软件体系结构课的一个大作业挺难的,要做很多的东西,比如网络连接,视频播放,XML等工作. 这里我给大家提供一个关于XML文件的解析方法的引导, 大家可以去试试这个工具(TinyXML)   1.首先下载TinyXML库的文件,这里给出链接,大家自己去下吧,记着要上国际   http://prdownloads.sourceforge.net/tinyxml/tinyxml_2_3_4.zip?download   2.下载后解压这个压缩包,把所有的东西放到一个找的着的地方(比如,E:开发库TinyXML)   3.用Visual C++(推荐VC++.NET2003)创建一个新的工程(Win32控制台)   4.在TinyXML的目录里面找到tinystr.h, tinyxml.h, tinystr.cpp, tinyxml.cpp, tinyxmlerror.cpp, tinyxmlparser.cpp六个文件加入到刚刚创建的项目中去   5.打开tinyxml.h, 在第一行加入下面这行:   #define TIXML_USE_STL   6.然后创建一个cpp文件,输入下面的内容:   1. #include <iostream>   #include <fstream>   #include “tinyxml.h”   using namespace std;   int main()   {   string filename = “first.xml”;   TiXmlDocument* doc = new TiXmlDocument(filename.c_str());   //////////////////////////////////////////////////////////////////////////   // 在这里复制文件   //////////////////////////////////////////////////////////////////////////   std::ifstream ifs(filename.c_str());   char buffer[1024];   char c, *p = buffer;   while(ifs.get(c))   {   *p++=c;   }   *p = 0;   ifs.close();   //////////////////////////////////////////////////////////////////////////   if(!doc->Parse(buffer))   {   cout << doc->ErrorDesc() << endl;   }   const TiXmlElement* root = doc->RootElement();   for( const TiXmlNode* child = root->FirstChild();   child;   child=child->NextSibling())   {   OutputDebugStringA(child->Value());   /*   生成一个StaticBox   <staticbox mesh=”crate.mesh”>   <position x=”-8″ y=”2″ z=”4″ />   <dimension x=”2″ y=”4″ z=”2″ />   </staticbox>   */   if((child->Type() == TiXmlNode::ELEMENT) && (!strcmp(child->Value(),”staticbox”)))   {   const TiXmlElement *box = (const TiXmlElement*)child;   double px, py, pz;   double dx, dy, dz;   std::string mesh;   mesh = box->Attribute(“mesh”);   for(const TiXmlNode *sub_tag = box->FirstChild(); sub_tag; sub_tag = sub_tag->NextSibling() )   {   if(sub_tag->Type() == TiXmlNode::ELEMENT)   {   const TiXmlElement *sub_element = (const TiXmlElement*)sub_tag;   if(!strcmp(sub_tag->Value(),”position”))   {   px = (sub_element->Attribute(“x”,&px))?px:0.0;   py = (sub_element->Attribute(“y”,&py))?py:0.0;   pz = (sub_element->Attribute(“z”,&pz))?pz:0.0;   }   else if(!strcmp(sub_tag->Value(),”dimension”))   {   dx = (sub_element->Attribute(“x”,&dx))?dx:1.0;   dy = (sub_element->Attribute(“y”,&dy))?dy:1.0;   dz = (sub_element->Attribute(“z”,&dz))?dz:1.0;   }   }   }   cout << “<StaticBox>   ”;   cout << ” Position = (” << px << “, ” << py << “, ” << pz << “)   ”;   cout << ” Dimension = (” << dx << “, ” << dy << “, ” << dz << “)   ”;   }   }   delete doc;   getchar();   return 0;   }   7.然后在项目的文件夹中加入一个xml文件,如下:   <?xml version=”1.0″ encoding=”utf-8″ ?>   <Scene>   <staticbox mesh=”crate.mesh”>   <position x=”-8″ y=”2″ z=”4″ />   <dimension x=”2″ y=”4″ z=”2″ />   </staticbox>   <staticbox mesh=”crate.mesh”>   <position x=”3″ y=”2″ z=”4″ />   <dimension x=”2″ y=”4″ z=”2″ />   </staticbox>   </Scene>   8.编译运行

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

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

(0)
上一篇 2024年 9月 13日
下一篇 2024年 9月 13日

相关推荐

关注微信