本發(fā)明涉及計算機,尤其涉及一種xml文本解析器、封裝器、系統(tǒng)及方法。
背景技術(shù):
1、可擴展標記語言xml廣泛應(yīng)用于應(yīng)用系統(tǒng)的文本交互、參數(shù)配置等領(lǐng)域,包括常見的web?service標準下xml的應(yīng)用,以及其他自定義格式的xml文本的使用。
2、xml文本屬于一種key-value型的文本格式,key既可以為xml文本的標簽值,也可以為xml文本屬性值,value則為兩個標簽之間的內(nèi)容。對于形如“<key1>a</key1>”的文本,其key可以為標簽值“key1”,value為a;對于形如“<ele?id=’key2’>b</ele>”的文本,其key可以為標簽值ele屬性id的屬性值“key2”,value為b。
3、目前存在多種第三方工具可以對xml文本進行解析及封裝,由于完全支持xml語言特性,導(dǎo)致其學(xué)習(xí)成本高,且存在諸如xxe注入等安全隱患,所謂xxe注入可參照“魏玉峰,杭肖.淺談xxe攻擊及防范措施[j].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2022.”。xml文本解析可以僅是對xml文本中value值的獲取,xml文本封裝可以僅是依照xml格式進行key-value值的映射和替換,所以xml文本解析和封裝可以無需使用全部的xml語言特性,無需對xml文本結(jié)構(gòu)進行解析,故第三方工具在解析和封裝xml文本時也存在內(nèi)存占用較大、效率較低的情況。
技術(shù)實現(xiàn)思路
1、針對目前xml解析和封裝的第三方工具存在的學(xué)習(xí)成本高、內(nèi)存占用大、效率低以及存在安全隱患的問題,本發(fā)明提供一種xml文本解析器、封裝器、系統(tǒng)及方法。
2、第一方面,本發(fā)明提供一種xml文本解析器,包括:
3、文本轉(zhuǎn)換組件,用于獲取xml文本,并將所述xml文本轉(zhuǎn)換為字符串;
4、key定位組件,用于獲取所述字符串中key首次出現(xiàn)的位置;
5、value獲取組件,用于在所述字符串中key首次出現(xiàn)的位置后,定位所述字符串中的value值。
6、進一步地,所述value獲取組件,具體用于:
7、在字符串中key首次出現(xiàn)的位置之后尋找首個“>”的所在位置pos1以及首個“<”的所在位置pos2,將位于區(qū)間[pos1,pos2)的內(nèi)容作為字符串中的value值。
8、第二方面,本發(fā)明提供一種xml文本封裝器,包括:
9、文本模板加載組件,用于根據(jù)給定文本模板類型加載對應(yīng)的文本模板,并輸出所述文本模板的字符串;
10、模板替換組件,用于接收替換值value,并將所述文本模板的字符串中的key值替換為所述替換值value以生成應(yīng)用系統(tǒng)需要的xml文本。
11、進一步地,所述文本模板包括靜態(tài)區(qū)塊和待替換區(qū)塊;
12、所述靜態(tài)區(qū)塊,用于保持原有文本格式及內(nèi)容,并封裝進最終xml文本中的文本內(nèi)容;
13、所述待替換區(qū)塊,用于承載待替換的key值。
14、第三方面,本發(fā)明提供一種應(yīng)用系統(tǒng),包括如第一方面所述的xml文本解析器和如第二方面所述的xml文本封裝器。
15、第四方面,本發(fā)明提供一種xml文本解析方法,包括:
16、獲取xml文本,并將所述xml文本轉(zhuǎn)換為字符串;
17、獲取所述字符串中key首次出現(xiàn)的位置;
18、在所述字符串中key首次出現(xiàn)的位置后,定位所述字符串中的value值。
19、第五方面,本發(fā)明提供一種xml文本封裝方法,包括:
20、根據(jù)給定文本模板類型加載對應(yīng)的文本模板,并輸出所述文本模板的字符串;
21、接收替換值value,并將所述文本模板的字符串中的key值替換為所述替換值value以生成應(yīng)用系統(tǒng)需要的xml文本。
22、本發(fā)明的有益效果:
23、在明確xml文本為key-value型文本格式,并定義key的范圍的基礎(chǔ)上,本發(fā)明在不依賴于第三方工具的情況下,僅通過字符串操作即可快速完成xml文本快速解析及封裝,可以有效降低內(nèi)存占用及學(xué)習(xí)成本,并在提高效率的同時規(guī)避第三方工具存在的安全隱患問題。
1.一種xml文本解析器,其特征在于,包括:
2.一種根據(jù)權(quán)利要求1所述的一種xml文本解析器,其特征在于,所述value獲取組件,具體用于:
3.一種xml文本封裝器,其特征在于,包括:
4.根據(jù)權(quán)利要求3所述的一種xml文本封裝器,其特征在于,所述文本模板包括靜態(tài)區(qū)塊和待替換區(qū)塊;
5.一種應(yīng)用系統(tǒng),其特征在于,包括如權(quán)利要求1或2所述的xml文本解析器和如權(quán)利要求3或4所述的xml文本封裝器。
6.一種xml文本解析方法,其特征在于,包括:
7.一種xml文本封裝方法,其特征在于,包括: