[发明专利]一种可扩展标记语言解析方法及装置在审
申请号: | 201611104087.2 | 申请日: | 2016-12-05 |
公开(公告)号: | CN106598578A | 公开(公告)日: | 2017-04-26 |
发明(设计)人: | 王祺 | 申请(专利权)人: | 沈阳中科创达软件有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F17/30 |
代理公司: | 北京品源专利代理有限公司11332 | 代理人: | 孟金喆,胡彬 |
地址: | 110167 辽宁省沈阳市东陵区上*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 扩展 标记 语言 解析 方法 装置 | ||
1.一种可扩展标记语言解析方法,其特征在于,包括:
获取可扩展标记语言文件中的预设片段;
将所述预设片段中的节点依次执行入栈和出栈操作;
依据所述出栈操作得到的节点构造和所述预设片段对应的节点树。
2.根据权利要求1所述的方法,其特征在于,所述将所述预设片段中的节点依次执行入栈和出栈操作,包括:
读取到开始标签时,通过第一回调函数创建根节点放入栈中;
步骤A:通过所述第一回调函数将node节点放入所述栈中;
步骤B:通过所述第一回调函数将id节点放入所述栈中,读取到结束标签时,通过第二回调函数将栈顶节点出栈,并存入所述node节点的子节点中;
和/或;
步骤C:通过所述第一回调函数将name节点放入所述栈中,读取到结束标签时,通过第二回调函数将栈顶节点出栈,并存入所述node节点的子节点中;
步骤D:读取到结束标签时,通过所述第二回调函数将栈顶节点出栈,并存入所述根节点的子节点中。
3.根据权利要求2所述的方法,其特征在于,还包括:
将所述预设片段中的node节点依次执行步骤A、B和/或C、D直至预设片段中的所有节点均执行了入栈和出栈操作。
4.根据权利要求2所述的方法,其特征在于,所述依据所述出栈操作得到的节点构造和所述预设片段对应的节点树,包括:
所述node节点的id节点和/或name节点作为所述node节点的子节点;
所述node节点作为所述根节点的子节点。
5.根据权利要求1所述的方法,其特征在于,所述将所述预设片段中的节点依次执行入栈和出栈操作,包括:
将所述预设片段中的节点通过深度优先搜素算法逐个节点执行入栈和出栈操作。
6.根据权利要求2所述的方法,其特征在于,所述第一回调函数为startElement,所述第二回调函数为endElement。
7.一种可扩展标记语言解析装置,其特征在于,包括:
片段获取模块,用于获取可扩展标记语言文件中的预设片段;
执行模块,用于将所述预设片段中的节点依次执行入栈和出栈操作;
节点树构造模块,用于依据所述出栈操作得到的节点构造和所述预设片段对应的节点树。
8.根据权利要求7所述的装置,其特征在于,所述执行模块,具体用于:
读取到开始标签时,通过第一回调函数创建根节点放入栈中;
步骤A:通过所述第一回调函数将node节点放入所述栈中;
步骤B:通过所述第一回调函数将id节点放入所述栈中,读取到结束标签时,通过第二回调函数将栈顶节点出栈,并存入所述node节点的子节点中;
和/或;
步骤C:通过所述第一回调函数将name节点放入所述栈中,读取到结束标签时,通过第二回调函数将栈顶节点出栈,并存入所述node节点的子节点中;
步骤D:读取到结束标签时,通过所述第二回调函数将栈顶节点出栈,并存入所述根节点的子节点中。
9.根据权利要求8所述的装置,其特征在于,所述执行模块,具体用于:
将所述预设片段中的node节点依次执行步骤A、B和/或C、D直至预设片段中的所有节点均执行了入栈和出栈操作。
10.根据权利要求8所述的装置,其特征在于,所述节点树构造模块,具体用于:
所述node节点的id节点和/或name节点作为所述node节点的子节点;
所述node节点作为所述根节点的子节点。
11.根据权利要求7所述的装置,其特征在于,所述执行模块,具体用于:
将所述预设片段中的节点通过深度优先搜素算法逐个节点执行入栈和出栈操作。
12.根据权利要求8所述的装置,其特征在于,所述第一回调函数为startElement,所述第二回调函数为endElement。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于沈阳中科创达软件有限公司,未经沈阳中科创达软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611104087.2/1.html,转载请声明来源钻瓜专利网。