[發明專利]一種XML文檔解析方法、系統及電子設備和存儲介質在審
| 申請號: | 201910142644.7 | 申請日: | 2019-02-26 |
| 公開(公告)號: | CN109918540A | 公開(公告)日: | 2019-06-21 |
| 發明(設計)人: | 劉新;鄧蒙召;李河金;覃定鵬;樊球 | 申請(專利權)人: | 深圳市元征科技股份有限公司 |
| 主分類號: | G06F16/80 | 分類號: | G06F16/80 |
| 代理公司: | 深圳市深佳知識產權代理事務所(普通合伙) 44285 | 代理人: | 王仲凱 |
| 地址: | 518000 廣東省深圳市龍*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 對象類型 解析函數 基類 電子設備 基類對象 類對象 調用 派生 解析 計算機可讀存儲介質 繼承 可擴展標記語言 存儲介質 預先創建 申請 | ||
本申請公開了一種XML文檔解析方法、系統及一種電子設備和計算機可讀存儲介質,該方法包括:獲取可擴展標記語言XML標簽,并判斷當前XML標簽是否作為基類被繼承;如果是,則判斷所述當前XML標簽中內容的對象類型;其中,所述對象類型包括基類對象和派生類對象;根據所述對象類型調用對應的預先創建的解析函數,并利用所述解析函數解析所述當前XML標簽的內容。本申請首先判斷XML標簽是否作為基類被繼承,并進一步判斷作為基類被繼承的XML標簽中內容的對象類型,從而根據對象類型動態地調用相應的解析函數,最終實現無論是基類對象還是派生類對象均能夠被正確的解析。
技術領域
本申請涉及計算機技術領域,更具體地說,涉及一種XML文檔解析方法、系統及一種電子設備和一種計算機可讀存儲介質。
背景技術
現有技術中,利用c++解析XML文檔時,原XML文檔中出現的基類標記派生類數據的情況下,按照常規解析方式只能解析基類數據而無法完整解析派生類數據。
另外,還存在一種以抽象類機制為基礎的解析方法,具體使用boost::serialization用基類指針轉存派生類或者用BOOST_CLASS_EXPORT來實現。然而由于抽象類不能被實例化為可供使用的具體對象,從而造成XML文檔中被聲明為基類的對象無法被解析。
因此,如何確保基類對象和派生類對象均能被正確解析是本領域技術人員需要解決的問題。
發明內容
本申請的目的在于提供一種XML文檔解析方法、系統及一種電子設備和一種計算機可讀存儲介質,能夠確保基類對象和派生類對象均能被正確解析。
為實現上述目的,本申請提供了一種XML文檔解析方法,包括:
獲取可擴展標記語言XML標簽,并判斷當前XML標簽是否作為基類被繼承;
如果是,則判斷所述當前XML標簽中內容的對象類型;其中,所述對象類型包括基類對象和派生類對象;
根據所述對象類型調用對應的預先創建的解析函數,并利用所述解析函數解析所述當前XML標簽的內容。
可選的,所述判斷當前XML標簽是否作為基類被繼承,包括:
獲取所述當前XML標簽中定義的標簽屬性;
根據所述標簽屬性確定所述當前XML標簽是否作為基類被繼承。
可選的,所述判斷當前XML標簽是否作為基類被繼承之后,還包括:
若所述當前XML標簽未作為基類被繼承,則調用預先創建的基類解析函數,并利用所述基類解析函數解析所述當前XML標簽中的基類對象。
可選的,當所述對象類型為派生類對象時,所述根據所述對象類型調用對應的預先創建的解析函數,并利用所述解析函數解析所述當前XML標簽的內容,包括:
調用預先創建的派生類解析函數,并利用所述派生類解析函數解析所述派生類對象。
可選的,所述調用預先創建的派生類解析函數,包括:
確定所述當前XML標簽中用于調用基類對象的第一位置和所述當前XML標簽的上一級標簽中用于定義所述基類對象的第二位置;
將所述第一位置和所述第二位置的所述基類對象均替換為基類指針;其中,對所述第一位置的所述基類對象進行替換時,為所述基類指針分配派生類類型的內存;
基于C++多態特性利用所述基類指針動態調用所述派生類解析函數。
可選的,還包括:
判斷所有所述XML標簽是否均解析完成;
如果否,則獲取未解析XML標簽并對其進行解析。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市元征科技股份有限公司,未經深圳市元征科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910142644.7/2.html,轉載請聲明來源鉆瓜專利網。





