System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及xml解析,尤其涉及一種xml文檔解析方法、裝置、設備及存儲介質。
技術介紹
1、在消息傳輸場景中,往往將消息按照某種標準規范協議的方式通過文件傳輸。當消息文件過大時,消息文件的解析效率和存儲性能面臨著挑戰。
2、當消息以xml文檔進行傳輸時,xml文檔的主要解析方法包括:dom和sax。dom(文檔對象模型)提供了標準的解析方式,但其解析效率一直不盡如人意,這是因為dom解析xml文檔時,把所有內容一次性的裝載入內存,并構建一個駐留在內存中的樹狀結構。如果需要解析的xml文檔過大,,就會引起性能問題。
技術實現思路
1、本專利技術提供了一種xml文檔解析方法、裝置、設備及存儲介質,以解決傳統xml文檔解析方法需要把所有內容一次性的裝載入內存,解析效率低的問題。
2、第一方面,本專利技術實施例提供了一種xml文檔解析方法,包括:
3、通過解析處理器對xml文檔進行逐行掃描;
4、在掃描到所述xml文檔包含的目標元素事件的觸發點時,觸發事件處理器處理所述目標元素事件并產生元素消息,向存儲處理器發送所述元素消息,以使所述存儲處理器基于所述元素消息對所述目標元素事件進行持久化處理;
5、在掃描到所述xml文檔包含的目標文檔事件的觸發點時,觸發所述事件處理器將所述目標文檔事件發送到所述存儲處理器,以使所述存儲處理器對所述目標文檔事件進行持久化處理。
6、第二方面,本專利技術實施例提供了一種xml文檔解析裝
7、掃描模塊,用于通過解析處理器對xml文檔進行逐行掃描;
8、元素處理模塊,用于在掃描到所述xml文檔包含的目標元素事件的觸發點時,觸發事件處理器處理所述目標元素事件并產生元素消息,向存儲處理器發送所述元素消息,以使所述存儲處理器基于所述元素消息對所述目標元素事件進行持久化處理;所述元素消息用于表示完整的元素、以及元素之間的關系;
9、文檔處理模塊,用于在掃描到所述xml文檔包含的目標文檔事件的觸發點時,觸發所述事件處理器將所述目標文檔事件發送到所述存儲處理器,以使所述存儲處理器對所述目標文檔事件進行持久化處理。
10、第三方面,本專利技術實施例提供了一種電子設備,所述電子設備包括:
11、至少一個處理器;以及
12、與所述至少一個處理器通信連接的存儲器;其中,
13、所述存儲器存儲有可被所述至少一個處理器執行的計算機程序,所述計算機程序被所述至少一個處理器執行,以使所述至少一個處理器能夠執行本專利技術任一實施例所述的xml文檔解析方法。
14、第四方面,本專利技術實施例提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有計算機指令,所述計算機指令用于使處理器執行時實現本專利技術任一實施例所述的xml文檔解析方法。
15、本專利技術實施例的技術方案,通過解析處理器按照數據流的形式對xml文檔進行逐行掃描;在掃描到xml文檔包含的目標元素事件的觸發點時,觸發事件處理器處理目標元素事件并產生元素消息,向存儲處理器發送元素消息,以使存儲處理器基于元素消息對目標元素事件進行持久化處理;在掃描到xml文檔包含的目標文檔事件的觸發點時,觸發事件處理器將目標文檔事件發送到存儲處理器,以使存儲處理器對目標文檔事件進行持久化處理。在解析xml時不需要將整個xml文檔載入內存,而是逐行掃描并且一邊掃描一邊解析,占用的內存資源少且解析速度快,可以在任何時候停止解析文檔,解決了傳統xml文檔解析方法需要把所有內容一次性的裝載入內存,解析效率低的問題。并且利用事件驅動的形式在解析過程中對特定事件做出響應,靈活性高,尤其適用于數據量大的xml文檔。
16、應當理解,本部分所描述的內容并非旨在標識本專利技術的實施例的關鍵或重要特征,也不用于限制本專利技術的范圍。本專利技術的其它特征將通過以下的說明書而變得容易理解。
本文檔來自技高網...【技術保護點】
1.一種XML文檔解析方法,其特征在于,包括:
2.根據權利要求1所述的XML文檔解析方法,其特征在于,所述目標文檔事件包括:文檔起始事件和文檔終止事件;文檔起始事件的觸發點為文檔起始標簽,文檔終止事件的觸發點為文檔終止標簽;
3.根據權利要求2所述的XML文檔解析方法,其特征在于,所述事件處理器包括:元素棧和層級桶;所述元素棧用于記錄元素的先后順序和緩存當前未完整處理的元素文本;所述層級桶用于存儲當前未完整處理元素的元素編號和所在層級。
4.根據權利要求3所述的XML文檔解析方法,其特征在于,在掃描到所述XML文檔包含的目標元素事件的觸發點時,觸發事件處理器處理所述目標元素事件并產生元素消息,向存儲處理器發送所述元素消息的步驟包括:
5.根據權利要求4所述的XML文檔解析方法,其特征在于,所述觸發所述事件處理器在所述元素棧的棧頂元素記錄在文檔結構模板中的情況下,根據所述元素的壓縮狀態產生元素消息,向所述存儲處理器發送所述元素消息并對所述元素棧進行退棧,以使所述存儲處理器基于所述元素消息對所述目標元素事件進行持久化處理的步驟包括:<
...【技術特征摘要】
1.一種xml文檔解析方法,其特征在于,包括:
2.根據權利要求1所述的xml文檔解析方法,其特征在于,所述目標文檔事件包括:文檔起始事件和文檔終止事件;文檔起始事件的觸發點為文檔起始標簽,文檔終止事件的觸發點為文檔終止標簽;
3.根據權利要求2所述的xml文檔解析方法,其特征在于,所述事件處理器包括:元素棧和層級桶;所述元素棧用于記錄元素的先后順序和緩存當前未完整處理的元素文本;所述層級桶用于存儲當前未完整處理元素的元素編號和所在層級。
4.根據權利要求3所述的xml文檔解析方法,其特征在于,在掃描到所述xml文檔包含的目標元素事件的觸發點時,觸發事件處理器處理所述目標元素事件并產生元素消息,向存儲處理器發送所述元素消息的步驟包括:
5.根據權利要求4所述的xml文檔解析方法,其特征在于,所述觸發所述事件處理器在所述元素棧的棧頂元素記錄在文檔結構模板中的情況下,根據所述元素的壓縮狀態產生元素消...
【專利技術屬性】
技術研發人員:劉書成,王有金,周游,姜才康,茅廷,
申請(專利權)人:成方金融科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。