新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论DOM, SAX, XPath等。
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 DOM/SAX/XPath 』 → XML解析器(TinyXML)的使用指南(转载) 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 32120 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: XML解析器(TinyXML)的使用指南(转载) 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     longshentailang 帅哥哟,离线,有人找我吗?
      
      
      威望:1
      等级:计算机学士学位
      文章:325
      积分:2990
      门派:XML.ORG.CN
      注册:2006/6/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给longshentailang发送一个短消息 把longshentailang加入好友 查看longshentailang的个人资料 搜索longshentailang在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看longshentailang的博客楼主
    发贴心情 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>\n";
       cout << "\tPosition = (" << px << ", " << py << ", " << pz << ")\n";
       cout << "\tDimension = (" << dx << ", " << dy << ", " << dz << ")\n\n";
      }
    }

    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.编译运行


       收藏   分享  
    顶(1)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/9 15:53:00
     
     longshentailang 帅哥哟,离线,有人找我吗?
      
      
      威望:1
      等级:计算机学士学位
      文章:325
      积分:2990
      门派:XML.ORG.CN
      注册:2006/6/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给longshentailang发送一个短消息 把longshentailang加入好友 查看longshentailang的个人资料 搜索longshentailang在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看longshentailang的博客2
    发贴心情 tinyxml_2_3_4.zip
    我这里已经把TinyXML库的文件上传上来了,如果不便于从下面链接下载该文件,可以从这里下载tinyxml_2_3_4.zip文件.
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/9 15:58:00
     
     longshentailang 帅哥哟,离线,有人找我吗?
      
      
      威望:1
      等级:计算机学士学位
      文章:325
      积分:2990
      门派:XML.ORG.CN
      注册:2006/6/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给longshentailang发送一个短消息 把longshentailang加入好友 查看longshentailang的个人资料 搜索longshentailang在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看longshentailang的博客3
    发贴心情 上传的tinyxml_2_3_4.zip文件
    不好意思,上面没有上传成功,这次是再传的!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/9 16:02:00
     
     lagen 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:54
      门派:XML.ORG.CN
      注册:2007/3/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lagen发送一个短消息 把lagen加入好友 查看lagen的个人资料 搜索lagen在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lagen的博客4
    发贴心情 
    hao
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/3/6 16:07:00
     
     derry755 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:5
      积分:74
      门派:XML.ORG.CN
      注册:2007/2/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给derry755发送一个短消息 把derry755加入好友 查看derry755的个人资料 搜索derry755在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看derry755的博客5
    发贴心情 
    gooood
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/9 15:49:00
     
     邹小虎 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:4
      积分:74
      门派:XML.ORG.CN
      注册:2007/3/24

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给邹小虎发送一个短消息 把邹小虎加入好友 查看邹小虎的个人资料 搜索邹小虎在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看邹小虎的博客6
    发贴心情 
    good,thanks!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/11 9:31:00
     
     lxlcnman 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:54
      门派:XML.ORG.CN
      注册:2007/4/29

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lxlcnman发送一个短消息 把lxlcnman加入好友 查看lxlcnman的个人资料 搜索lxlcnman在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lxlcnman的博客7
    发贴心情 
    我下不了
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/29 23:35:00
     
     skyblue523 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:12
      积分:96
      门派:XML.ORG.CN
      注册:2007/5/13

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给skyblue523发送一个短消息 把skyblue523加入好友 查看skyblue523的个人资料 搜索skyblue523在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看skyblue523的博客8
    发贴心情 
    谢谢共享
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/5/13 12:37:00
     
     seavan 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:54
      门派:XML.ORG.CN
      注册:2007/11/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给seavan发送一个短消息 把seavan加入好友 查看seavan的个人资料 搜索seavan在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看seavan的博客9
    发贴心情 为什么下载没有连接?
    为什么下载没有连接?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/11/6 10:46:00
     
     天涯咫尺之遥 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:8
      积分:98
      门派:XML.ORG.CN
      注册:2007/11/17

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给天涯咫尺之遥发送一个短消息 把天涯咫尺之遥加入好友 查看天涯咫尺之遥的个人资料 搜索天涯咫尺之遥在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看天涯咫尺之遥的博客10
    发贴心情 
    我下不下来呢 能不能把源文件给我呢 qiaoxiaoli0224@126.com
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/11/19 23:19:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 DOM/SAX/XPath 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/3/28 19:34:27

    本主题贴数10,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    140.625ms