易截截图软件、单文件、免安装、纯绿色、仅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数据中,一些特殊字符必须用转义符号来代替,而回车换行字符就是属于特殊符号。
空格 (&#x20;)
Tab (&#x09;)
回车 (&#x0D;)
换行 (&#x0A;)
下面是一个报表XML数据,里面包括有回车换行字符:
<report>
<NewDataSet>
<Table>
<CustomerID>BLONP</CustomerID& ......

解析XML时DTD的处理 解析时忽略,生成XML文件时加上


一、解析XML文件时,遇到DTD的定义要怎么办?
    下面这段代码是ibatis配置文件,用w3c Dom(其实任意一种解析方式都是这样)都会从http://www.ibatis.com/dtd/sql-map-config-2.dtd
 这
个地址找对应的DTD文件进行校验,如果因特网上这个地址不存在的话,就会报 java.net.ConnectException:
Con ......

linux环境下,c++库文件中的符号的含义

c++库文件中的符号的含义:
      所有的符号都是以下划线加上大写字母也就是"_Z"开头,对于在 类里或者命名空间中的符号,后面紧跟"N",然后是各个命名空间和类的名字,每个名字前是名字字符串的长度,随后是大写字母"E",对于一个函数,他的参数列表都在E后面, ......

xml解析方式

在平时工作中,难免会遇到把XML作为数据存储格式。面对目前种类繁多的解决方案,哪个最适合我们呢?在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历XML这块来测试,因为遍历XML是工作中使用最多的(至少我认为)。
  预备
  测试环境:
  AMD毒龙1.4G OC 1.5G、256M DDR333、Windows2000 Server SP ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号