[发明专利]一种大体积XML报文的解析方法有效
申请号: | 201310299520.2 | 申请日: | 2013-07-17 |
公开(公告)号: | CN103366000A | 公开(公告)日: | 2013-10-23 |
发明(设计)人: | 陆舟;于华章 | 申请(专利权)人: | 飞天诚信科技股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种大体积XML报文的解析方法,属于信息处理技术领域。所述方法包括:当报文的长度超过预设长度时,上位机将报文拆分为多个包,通过指令下发给解析装置,解析装置接收到所述指令后,获取指令中的包,根据解析装置中保存的当前环境变量,执行相应的操作,指令解析完毕后更新当前环境变量,如果所述指令为报文的最后一包,则向上位机返回报文解析成功的响应,如果所述指令不是报文的最后一包,则向上位机返回包解析成功的响应,继续等待上位机发送下一包。采用本发明的技术方案,很好的解决了大体积报文的解析问题,而且不需要占用较大的缓存区,能够减少内存的占用。 | ||
搜索关键词: | 一种 体积 xml 报文 解析 方法 | ||
【主权项】:
一种大体积XML报文的解析方法,其特征在于,包括:当报文的长度超过预设长度时,上位机将所述报文拆分为多个不超过预设长度的包,通过指令将每个包下发给解析装置,解析装置执行以下操作:S1、解析装置等待接收上位机发送的指令,对接收到的指令进行解析,从所述指令中获取包和包的长度,将所述包的第一个字符作为当前字符;S2、所述解析装置获取所述解析装置中保存的环境变量中的主状态,是初始态则执行步骤A1;是开始标签态则执行步骤B1;是结束标签态则执行步骤C1;A1、所述解析装置判断当前字符,如果是第一字符,则更新当前字符,执行步骤A2,否则向上位机返回包格式错误的响应;A2、所述解析装置判断当前字符,如果属于预设合法标签字符集,则将主状态置为开始标签态,将子状态置为标签名态,返回执行步骤S2,如果是第二字符,则将主状态置为结束标签态,返回执行步骤S2,否则向上位机返回包格式错误的响应;B1、所述解析装置获取环境变量的子状态,如果是标签名态,则执行步骤B2,如果是属性态,则获取环境变量的子属性状态,如果子属性状态为属性名前态,则执行步骤B3;如果子属性状态为属性名态,则执行步骤B4;如果子属性状态为属性值前态,则执行步骤B5,如果子属性状态为属性值态,则执行步骤B6;B2、解析装置判断当前字符,如果属于预设合法标签字符集,则将当前字符保存在第一预设存储区中,更新当前字符,继续执行步骤B2;如果是第三字符,则将子状态置为属性态,子属性状态置为属性名前态,执行步骤B3;如果是第四字符,则将主状态置为初始态,更新当前字符,执行步骤S2,否则向上位机返回包格式错误的响应;B3、解析装置更新当前字符,判断当前字符是否属于预设合法标签字符集,是则将当前字符保存在第二预设存储区中,将子属性状态置为属性名态,更新当前字符,执行步骤B4,否则向上位机返回包格式错误的响应;B4、解析装置判断当前字符是否为第五字符,如果是,则将子属性状态置 为属性值前态,更新当前字符,执行步骤B5,否则更新当前字符,继续执行步骤B4;B5、解析装置判断当前字符是否为第六字符,如果是,则将子属性状态置为属性值态,更新当前字符,执行步骤B6,否则向上位机返回包格式错误的响应;B6、解析装置判断当前字符是否属于预设合法标签字符集,如果不是,则向上位机返回包格式错误的响应,如果是,则判断第二预设存储区中的内容是否符合预设显示字符,是则先将当前字符保存在显示存储区中,后执行步骤B7,否则执行步骤B7;B7:解析装置更新当前字符,判断当前字符是否为第七字符,如果不是,则向上位机返回包格式错误的响应,如果是,则将子属性状态置为属性名前态,更新当前字符,判断当前字符是否为第四字符,如果是,则将主状态置为初始态、子状态置为标签名态,返回执行步骤S2,否则向上位机返回包格式错误的响应;C1、所述解析装置判断当前字符,如果属于预设合法标签字符集,则将当前字符保存在第三预设存储区中,更新当前字符,继续执行步骤C1;如果是第四字符,则执行步骤C2;C2、所述解析装置判断第三预设存储区中的内容与第一预设存储区中最后保存的内容是否相同,是则将第一预设存储区中最后保存的内容和第三预设存储区中保存的内容删除,并将环境变量置为初始态,更新当前字符,返回执行步骤S2,否则将第一预设存储区和第三预设存储区清空,并向上位机返回包格式错误的响应;所述更新当前字符之前包括:所述解析装置判断已解析的字符数是否达到所述包的长度,如果是,则判断所述包是否为所述指令的最后一包,如果是最后一包,则向上位机返回报文解析成功的响应,如果不是最后一包,则向上位机返回包解析成功的响应,返回执行步骤S1,否则执行所述更新当前字符的操作。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于飞天诚信科技股份有限公司,未经飞天诚信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310299520.2/,转载请声明来源钻瓜专利网。
- 上一篇:标准有效性判断系统及方法
- 下一篇:网页内容放大方法及网页内容放大镜