TinyXML的使用
来源:互联网 发布:地图数据质量 编辑:程序博客网 时间:2024/05/22 00:07
在我们准备导出xml的过程中,因为最终的目标是导出ogre的xml格式,所以需要用到相关的XML库。我们可以手工用stream进行文本输出,但是使用TinyXML有很多的好处,特别是在逻辑结构上。我们使用的版本是2.5.3的。
会用到的几个案例:
创建xml对象,这个作为一个新建立的文档的句柄。建立后所有的文档节点(element)都会存在该文档中。
TiXmlDocument *pXmlDoc = new TiXmlDocument();
在文档中写入文件头
TiXmlDeclaration declarationElem (_T("1.0"), _T(""), _T("")); //xml文件头pXmlDoc->LinkEndChild(&declarationElem);
上面的句法,会在文档保存的时候写入<?xml version="1.0" ?>
在文档中写入一个元素,
TiXmlElement meshElem ("mesh");pXmlDoc->LinkEndChild(&meshElem);上面的句法,会在文档保存的时候写入<mesh> ... </mesh>,省略号是可能具备的具体的其他内容。
给元素赋予相关的属性,
TiXmlElement submesh("submesh");submeshes.LinkEndChild(&submesh);submesh.SetAttribute("material", "");submesh.SetAttribute("usesharedvertices", "");
上面的句法,会在文档保存的时候写入<submesh material="" usesharedvertices="">
上述几种句法,能够完成大多数我们需要做的事情。看得出来,使用TinyXML的好处是,写代码的过程中注重的是文档的结构,而不是相关的各个XML句法的细节。
要注意的是,实际操作中,每个element不能用上面的案例中的放置在堆栈上的写法,必须用new来在堆中生成。否则,如下的提示会产生:
这个问题的根本原因是:TinyXml中,在析构的时候,会用delete来删除链表上的每个node。代码片段,
TiXmlNode::~TiXmlNode(){TiXmlNode* node = firstChild;TiXmlNode* temp = 0;while ( node ){temp = node;node = node->next;delete temp;}}这个片段也说明了另外一个第一次使用TinyXML需要关心的问题,new出来的节点,谁来负责delete。答案是,除了根节点我们需要调用delete,其他的都是库来管理的。
- tinyxml库的使用
- tinyxml库的使用
- 转载:tinyxml 的使用
- 使用TinyXML的注意事项
- tinyxml的使用例子
- tinyxml的使用
- tinyxml的使用 转
- tinyxml的使用
- TinyXML的使用
- tinyxml库的使用
- TinyXML 的使用
- Tinyxml的使用
- TinyXml的使用
- tinyXML的基本使用
- tinyxml的使用
- tinyxml源码的使用
- C++:tinyxml的使用
- tinyxml的封装与使用
- 拓扑排序算法
- jdk环境变量配置
- Oracle Golden Gate 系列十八 -- GG 多对一 real-time data warehousing 说明 与 示例
- XP SP3密钥(有效)
- 软件开发英文重要性
- TinyXML的使用
- rails开发利器:rails2.3.8 如何配置发送邮件
- ssh 公钥方式认证攻略
- Qt 实现橡皮筋线
- 指针操作:加减、解引用、下标操作
- QT多线程编程
- MFC Diary - Visual C++ 基础框架1
- 在Qt中计算文本的宽度与高度
- PostgreSQL模式匹配关键字similar to 和 like 的区别