易截截图软件、单文件、免安装、纯绿色、仅160KB

C++ XML解析之TinyXML篇

 标签:XML解析 TinyXML   [推送到技术圈]
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://panpan.blog.51cto.com/489034/104961
最近使用TinyXML进行C++ XML解析,感觉使用起来比较简单,很容易上手,本文给出一个使用TinyXML进行XML解析的简单例子,很多复杂的应用都可以基于本例子的方法来完成。以后的文章里会讲解使用Xerces进行C++ XML解析的例子,希望大家一起交流。
TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。
    DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序关系以及嵌套包含关系。
    首先从网上下载TinyXML的库,文件夹的名字是TinyXpath,在工程里做如下配置:
    在附加包含路径里添加:你的tinyxpath路径/tinyxpath/include
    在附加库路径里添加:你的tinyxpath路径/tinyxpath/lib
    在对象/库路径里添加:tinyxpathd.lib,如果使用release版本,则是tinyxpath.lib。
    另外,由于我开发的项目是多线程的,所以设置了多线程的环境,因此使用TinyXML没有出现问题。本人将TinyXML写在一个单独的C++工程进行测试,发现如果不设置多线程的环境,会出现链接错误。我觉得原因可能是TinyXML使用了多线程环境,因此需要设置多线程的环境。在工程/设置下的C/C++选项卡中,选择Code Generation,在Use run-time library中选择Debug MultiThreaed DLL即可。
    本例的XML文件Students.xml如下:
<Class name="计算机软件班">
    <Students>
        <student name="张三" studentNo="13031001" sex="男" age="22">
            <phone>88208888</phone>
            <address>西安市太白南路二号</address>
        </student>


相关文档:

XML 初级教程

XML 被设计用来描述数据,其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。
应该掌握的基础知识:
在您继续学习之前,需要对以下知识有基本的了解:
HTML / XHTML
JavaScript 或 VBScript
如果您希望首先学习这些项目,请在我们的 首页 访问这些教程。
什么是XML?
XML 指可扩展标记语言(EXt ......

xml的优缺点

优点:由于xml是可扩展的,所以xml可以描述来自多种应用程序的数据。
通过粒度更新来提高性能。XML 允许粒度更新。开发人员不必在每次改动时都发送整个结构化数据集。有了粒度更新后,只有改变的元素才从服务器发送到客户机。 ......

过滤xml中的非法字符串


一般xml中如果含有&等字符,可以通过CDATA来过滤,但是含有一些不认识的特殊字符时候就会不起作用,下面是从别人那儿拿来的一个过滤方
法,过滤xml中的非法字符:
//XML标准规定的无效字节为:
/*
0×00 – 0×08
0×0b – 0×0c
0×0e – 0×1f
* ......

C/C++ 宏带来的奇技淫巧

作者:Kevin Lynx 来源:C++博客
转自:http://www.kuqin.com/language/20080319/4797.html
众多C++书籍都忠告我们C语言宏是万恶之首,但事情总不如我们想象的那么坏,就如同goto一样。宏有
一个很大的作用,就是自动为我们产生代码。如果说模板可以为我们产生各种型别的代码(型别替换),
那么宏其实可以为我们在符号上 ......

ASP.NET 从xml读出数据时的分页方法

public string GetPage(int page, int pages, string url)
        {
            if (pages == 0)
            {
       &n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号