[发明专利]一种将可扩展标记语言与C++类互相转换的方法在审
申请号: | 201911184800.2 | 申请日: | 2019-11-27 |
公开(公告)号: | CN112256245A | 公开(公告)日: | 2021-01-22 |
发明(设计)人: | 王宏明;林卫永;张勇;王泉荣;王钏文 | 申请(专利权)人: | 通号万全信号设备有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 杭州快知知识产权代理事务所(特殊普通合伙) 33293 | 代理人: | 杨冬玲 |
地址: | 317500 浙江省台*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 扩展 标记 语言 c++ 互相 转换 方法 | ||
本公开的一些实施方式提供的一种将可扩展标记语言与C++类互相转换的方法,先注册C++类,获取C++对象实例,其中,序列化属性根据QT处理C++对象实例获取,反序列化属性根据QT处理可扩展标记语言获取,将序列化属性以可扩展标记语言的格式输出到文件中实现序列化,并将文件的反序列化属性装配至对象实例实现反序列化。利用序列化属性和反序列化属性进行C++类与可扩展标记语言之间的转换,能够减少可扩展标记语言因结构改变导致的可靠性不高的缺点,减少转换过程中的数据遗漏和重复代码的产生,从而提升转换效率。
技术领域
本发明涉及编程语言技术领域,尤其涉及一种将可扩展标记语言与C++类互相转换的方法。
背景技术
可扩展标记语言是一种用于标记电子文件使其具有结构性的标记语言。它提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。使用纯文本来描述数据内容,简单易懂,并可使数据结构化,易于计算机理解,使XML很快成为跨平台,跨应用数据交换的公共语言。
在实际使用中,因为C++类本身不具备像Java,C#语言那样的反射功能,无法有效的将XML文件和C++对象进行互相转换。因此需编写许多判断语句来判断节点名进行对应的处理,故而产生重复代码,降低转换效率。所以减少判断语句产生的重复代码是目前急需解决的问题,而减少重复代码的关键在于提高C++类与可扩展标记语言之间的转换效率,减少可扩展标记语言在文件结构发生改变时产生的可靠性不高,易遗漏等问题,从而提高转换效率。
发明内容
本发明提供的一种将可扩展标记语言与C++类互相转换的方法,旨在解决现有技术中存在C++类与可扩展标记语言之间转换率低的不足之处。
为实现上述目的,本发明采用以下技术方案:
本发明的一种将可扩展标记语言与C++类互相转换的方法,包括以下步骤:
注册C++类,获取对应的C++对象实例;
确定序列化属性,所述序列化属性根据QT处理所述C++对象实例获取;确定反序列化属性,所述反序列化属性根据QT处理可扩展标记语言获取;
将所述序列化属性以所述可扩展标记语言的格式输出到文件中实现序列化的过程;将所述文件的所述反序列化属性装配至所述对象实例实现反序列化的过程。
通过QT处理C++对象实例和可扩展标记语言确定序列化属性和反序列化属性,序列化属性以可扩展标记语言的格式输出到文件中实现序列化过程,反序列化属性装配至所述对象实例实现反序列化的过程,能够保障可扩展标记语言在结构化改变中提高可靠性,减少判断语句带来的大量重复代码导致效率低下的问题,提高C++对象实例和可扩展语言转换效率。
作为优选,所述序列化属性根据QT处理所述C++对象实例获取,包括:
根据所述C++对象实例获得所述序列化属性,
将获取的所述序列化属性按照属性类型分为序列化简单属性和序列化复杂属性,并将所述序列化属性放入对应的属性表中;
所述反序列化属性根据QT处理可扩展标记语言获取,包括:
将所述反序列化属性装配到所述C++对象实例中,
将获取的反序列化属性按照属性类型分为反序列化简单属性和反序列化复杂属性,并将所述反序列化属性放入对应的属性表中;
作为优选,所述注册C++类,获取对应的C++对象实例,包括:
将所述C++类的类名利用标准容器注册到数据结构中,生成键值对;
将所述C++类的类实例,利用标准容器模板化一个生成函数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于通号万全信号设备有限公司,未经通号万全信号设备有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911184800.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:文本分类方法及装置
- 下一篇:一种跌倒检测方法、装置及存储介质