一种xml报文解析方法及装置的制造方法

文档序号:8433779阅读:279来源:国知局
一种xml报文解析方法及装置的制造方法
【技术领域】
[0001] 本发明涉及通信技术领域,尤其涉及一种XML报文解析方法及装置。
【背景技术】
[0002] 目前,可扩展标记语言巧xtensibleMarkupLanguage,XML)报文解析在肥B应用 中的使用越来越广泛,尤其是应用于Web服务(Webservice)中,例如,在解析Web服务中 的XML报文时,通常采用jdom方法和dom4J方法实现解析。
[0003] 具体来说,在采用jdom方法解析XML报文时,解析器SAX执行的具体解析流程为: 将XML报文中的全部字符串转换为文档对象(document),即D0M树形结构;然后对转换后 的文档对象进行顺序扫描及遍历操作,最终得到用户所需元素的相关信息,例如元素或元 素属性值。在SAX解析文档对象过程中,遇到文档对象的开始与结束,元素的开始与结束的 地方都会触发一系列的事件处理函数,由该些函数来完成相应的操作。
[0004] 假设采用jdom方法已经得到了用户所需的XML字符串,那么,具体实现代码可如 下:
[0005]
【主权项】
1. 一种可扩展标记语言XML报文的解析方法,其特征在于,包括: 确定待解析的XML报文中首个指定节点的结束字符的位置,并以确定出的位置为分界 线,将所述XML报文划分为第一 XML报文和第二XML报文; 确定所述第一 XML报文中所述指定节点的起始字符的位置,并从所述第一 XML报文中 截取所述起始字符至所述结束字符的位置之间的字符串; 对截取的字符串进行解析,得到所述指定节点所包含的各元素的相关信息,并将下一 个指定节点作为首个指定节点,将所述第二XML报文作为所述XML报文后,返回确定所述结 束字符的位置的步骤,直到解析完所有的指定节点。
2. 如权利要求1所述的方法,其特征在于,通过下述方式确定出待解析的XML报文中首 个指定节点的结束字符的位置: 利用位置寻找函数,确定出所述待解析的XML报文中首个指定节点的结束字符的位 置; 通过下述方式确定出所述第一 XML报文中所述指定节点的起始字符的位置: 利用所述位置寻找函数,确定出所述第一 XML报文中所述指定节点的起始字符的位 置。
3. 如权利要求1或2所述的方法,其特征在于,还包括: 分别将得到的所有指定节点所包含的各元素的相关信息保存到哈希表HASHMAP中,以 使调用方调用所需要的元素的相关信息。
4. 一种可扩展标记语言XML报文的解析装置,其特征在于,包括: 确定模块,用于确定待解析的XML报文中首个指定节点的结束字符的位置;以及确定 所述划分模块划分的第一 XML报文中所述指定节点的起始字符的位置; 划分模块,用于以所述确定模块确定出的位置为分界线,将所述XML报文划分为第一 XML报文和第二XML报文; 截取模块,用于从所述第一 XML报文中截取所述起始字符至所述结束字符的位置之间 的字符串; 解析模块,用于对所述截取模块截取的字符串进行解析,得到所述指定节点所包含的 各元素的相关信息,将下一个指定节点作为首个指定节点,将所述第二XML报文作为所述 XML报文后,返回所述确定模块确定所述结束字符的位置的步骤,直到解析完所有的指定节 点。
5. 如权利要求4所述的装置,其特征在于,所述确定模块,具体用于利用位置寻找函 数,确定出所述待解析的XML报文中首个指定节点的结束字符的位置;以及利用所述位置 寻找函数,确定出所述第一 XML报文中所述指定节点的起始字符的位置。
6. 如权利要求4或5所述的装置,其特征在于,还包括: 保存模块,用于分别将所述解析模块得到的所有指定节点所包含的各元素的相关信息 保存到哈希表HASHM中,以使调用方调用所需要的元素的相关信息。
【专利摘要】本发明实施例提供了一种XML报文的解析方法及装置,该方法包括:确定待解析的XML报文中首个指定节点的结束字符的位置,并以确定出的位置为分界线,将XML报文划分为第一XML报文和第二XML报文;确定第一XML报文中指定节点的起始字符的位置,并从第一XML报文中截取起始字符至结束字符的位置之间的字符串;对截取的字符串进行解析,得到指定节点所包含的各元素的相关信息,将下一个指定节点作为首个指定节点,将第二XML报文作为XML报文后,返回确定结束字符的位置的步骤,直到解析完所有的指定节点。本发明只需从包含用户所需要的元素所在节点对应的一部分字符串中解析即可,节省了较多的解析时间。
【IPC分类】H04L29-06, H04L29-08
【公开号】CN104753891
【申请号】CN201310752479
【发明人】张博, 蒋乐, 曹王华, 吴桂祥
【申请人】中国移动通信集团湖南有限公司
【公开日】2015年7月1日
【申请日】2013年12月31日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1