[發明專利]一種處理XML報文的方法和裝置有效
| 申請號: | 201210096221.4 | 申請日: | 2012-04-01 |
| 公開(公告)號: | CN102647351A | 公開(公告)日: | 2012-08-22 |
| 發明(設計)人: | 陸舟;于華章 | 申請(專利權)人: | 飛天誠信科技股份有限公司 |
| 主分類號: | H04L12/56 | 分類號: | H04L12/56 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100085 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 處理 xml 報文 方法 裝置 | ||
1.一種處理XML報文的方法,其特征在于,包括以下步驟:
①、當滿足預設條件時,將第一緩存區中的部分或全部XML報文數據存儲到第二緩存區,將所述第一緩存區中被存儲到所述第二緩存區的XML報文數據清除,當所述第一緩存區中存在未被存儲到所述第二緩存區的XML報文數據時,將所述未被存儲到所述第二緩存區的XML報文數據前移;所述第一緩存區用于存儲接收到的XML報文數據;
②、對所述第二緩存區中的XML報文數據進行解析,當所述第二緩存區存在未被成功解析的XML報文時,將所述第二緩存區中被成功解析的XML報文數據清除,將所述未被成功解析的XML報文數據前移,并返回步驟①;當所述第二緩存區不存在未被成功解析的XML報文,且最后一包XML報文沒有全部被成功解析時,將所述第二緩存區中的XML報文數據清除,并返回步驟①;當最后一包XML報文全部被成功解析后,結束流程。
2.如權利要求1所述的方法,其特征在于,所述預設條件,具體為:
接收到XML報文數據,并將所述XML報文數據存儲到所述第一緩存區;
或者,
所述第一緩存區中的XML報文數據的長度大于或等于所述第二緩存區的剩余空間長度,
或者,
所述第一緩存區中的XML報文數據為所述最后一包XML報文的數據;
所述將第一緩存區中的部分或全部XML報文數據存儲到第二緩存區,具體為:
當所述第一緩存區中的XML報文數據的長度大于或等于所述第二緩存區的剩余空間長度時,將所述第一緩存區中最先接收到的、數據長度等于所述第二緩存區的剩余空間長度的XML報文數據存儲到所述第二緩存區;當所述第一緩存區中的XML報文數據的長度小于所述第二緩存區的剩余空間長度,且第一緩存區中的XML報文數據為所述最后一包XML報文的數據時,將第一緩存區中的全部XML報文數據存儲到第二緩存區。
3.如權利要求1所述的方法,其特征在于,所述第二緩存區中的XML報文數據包括開始標簽、標簽內容和結束標簽中的一項或多項;
對所述第二緩存區中的XML報文數據進行解析,具體包括:
A、將第二計數器的計數值設置為所述第二緩存區中的XML報文數據的長度,將第一狀態位的取值初始化為第一預設值;
B、判斷所述第二計數器的計數值是否為零,如果為零,則執行步驟A;否則,執行步驟C;
C、根據第一指針變量的取值從所述第二緩存區中讀取一個字節數據,將讀取到的字節數據作為當前字節數據,將所述第一指針變量的取值加1,將所述第二計數器的計數值減1,對所述第一狀態位的取值進行判斷,如果所述第一狀態位的取值為第一預設值,則執行步驟D;如果所述第一狀態位的取值為第二預設值,則執行步驟H;
D、判斷所述當前字節數據是否為第一符號標識,如果是,則執行步驟E;否則,執行步驟F;
E、將所述第一狀態位的取值修改為所述第二預設值,將所述第一指針變量的取值賦值給第二指針變量,將第一深度變量的取值賦值給第二深度變量,并返回步驟B;
F、判斷所述當前字節數據是否為有效的ASCII碼,如果是,則執行步驟G;否則,返回步驟B;
G、讀取與所述當前字節數據在同一個標簽內容中的其他字節數據,對所述標簽內容進行處理,并在處理完畢后,返回步驟B;
H、判斷所述當前字節數據是否為第二符號標識,如果是,則執行步驟I;否則,執行步驟J;
I、讀取與所述當前字節數據在同一個結束標簽中的其他字節數據,將所述第二計數器的計數值減去所述其他字節數據的字節數,如果所述第二緩存區存儲有所述結束標簽的全部字節數據,則對所述結束標簽進行處理,并在處理得到的結束標簽名和結束標簽名的長度分別與深度數組中所述第一深度變量指示的位置存儲的開始標簽名和所述開始標簽名的長度相同時,將所述第一深度變量的取值減1,將所述第一狀態位的取值修改為所述第一預設值,返回步驟B;在處理得到的結束標簽名和結束標簽名的長度不分別與深度數組中所述第一深度變量指示的位置存儲的開始標簽名和所述開始標簽名的長度相同時,返回錯誤信息;如果所述第二緩存區沒有存儲所述結束標簽的全部字節數據,則執行步驟K;
J、將所述第一深度變量的取值加1,讀取與所述當前字節數據在同一個開始標簽中的其他字節數據,將所述第二計數器的計數值減去所述其他字節數據的字節數,如果所述第二緩存區存儲有所述開始標簽的全部字節數據,則對所述開始標簽進行處理,并在處理完畢后,將所述第一狀態位的取值修改為所述第一預設值,返回步驟B;如果所述第二緩存區沒有存儲所述開始標簽的全部字節數據,則執行步驟K;
K、將所述第二指針變量的取值賦值給第一指針變量,將所述第二深度變量的取值賦值給所述第一深度變量。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于飛天誠信科技股份有限公司,未經飛天誠信科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210096221.4/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:折疊式套布海綿拖把擠水器及其配套的套布海綿拖把
- 下一篇:線纜連接器組件





