频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

简单实用的Xml解析类

来源: 作者: 出处:巧巧读书 2007-10-09 进入讨论组
下一页 1 2 
引用:http://www.qqread.com/xml/g348216.html

  今天有点郁闷,不想干活。整理代码的时候,看到了这个好久之前写的代码,于是想整理出来供大家拍砖。XML的解析对于.Net平台那真是太简单不过了,感谢微软。但对于C++语言的XML解析就没那么容易了。

有一个开源的XML4C是IBM的,功能强大,但代码大的有几M,而且对于GB2312的支持有问题,据说能解决,但可能是我天生愚钝,当初我花了2周时间也没搞定,最后放弃,自己写了一个。咦?还能跑起来,也能跨平台:)。 写这个XML解析类,以功能最简单,最实用,最常用的功能为原则,因为只能解析,查找,没有XML文档生成器。如果需要生成XMl文档,还是自己拼凑字串吧。
  此解析器的接口完全模仿XML4C的对外接口,使用也很类似,稍有不同,对复杂部分进行了封装。总共分3个类: CPacket、DOMElement、DOMDocument。 DOMElement为节点类,主有有tag、level、 parent、childlist 等几个属性。DOMElement类主要是对XML文档的解析,生成,对整个XML文档 生成DOM树。CPacket主要是对XML文档的封装,提供对外的接口。

  下面简单示例一下使用方法:

  1、创建DOM树,得到XML对象:

  解析分两种,第一种是对xml string 字串的解析,另一种是对文件的解析。对应函数分别为:

  CPacket::BuiltTree(const char* pBuf,int nBufSize);
  CPacket::BuiltTree(MLPCSTR pXmlPath);
使用示例:  CPacket inPacket;
  DOMElement* TransNode = NULL;
  DOMElement* AccNode = NULL;
  inPacket.BuiltTree(strXml.c_str(),strXml.size());   //生成DOM树结构.
  inPacket.BuiltTree("c:\1.xml");           //生成DOM树结构.
2、对原有DOM树添加子结点:

  可以通过CPacket::CreateElement(char szNodeName[]) 来创建字节点,示例:

更多文章 更多内容请看XML详解基础教程专题,或进入讨论组讨论。
下一页 1 2 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章