專利名稱:Xml文件解析方法、xml文件解析裝置和終端的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動通信領(lǐng)域,具體而言,涉及一種XML文件解析方法、一種XML文件解析方法和一種終端。
背景技術(shù):
在現(xiàn)階段,XML已經(jīng)成為一種通用的數(shù)據(jù)交換格式,其具有的平臺無關(guān)性、語言無關(guān)性,給信息技術(shù)的交互帶來了極大的方便。目前,解析XML格式的文件通常有四種解析方案D0M,SAX, D0M4J, JDOM。但是,隨著進(jìn)行交互的數(shù)據(jù)越來越多,也就導(dǎo)致XML文件的體積也變得更大(尤其是包含了大數(shù)據(jù)的XML文件,例如,可以大于120M),這就造成上述四種解析方案在解析XML 文件,生成結(jié)構(gòu)樹時,解析速度很慢,極大影響用戶的工作效率。而且,將XML文件整個讀入,然后對其解析,需要長時間地占用大量內(nèi)存,對執(zhí)行解析工作的硬件壓力也較大。因此,需要一種新的XML文件解析方式,能夠提高體積較大的XML文件的解析效率,并降低解析工作造成的硬件壓力。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于,提供一種新的XML文件解析方式,能夠提高體積較大的XML文件的解析效率,并降低解析工作造成的硬件壓力。有鑒于此,本發(fā)明提供一種XML文件解析方法,包括步驟102,讀入XML文件;步驟104,過濾掉XML文件中的預(yù)定類型的數(shù)據(jù);步驟106,對過濾掉預(yù)定類型的數(shù)據(jù)的XML文件進(jìn)行解析。通過該技術(shù)方案,不影響XML結(jié)構(gòu)的情況下,將不必要的數(shù)據(jù)去掉,減小了 XML 文件的體積,保證了解析的效率。預(yù)定類型的數(shù)據(jù)可以是存儲在XML多個類型的節(jié)點(也稱為元素)下的數(shù)據(jù),其中,對于占用空間較大的大數(shù)據(jù),該技術(shù)方案尤為適用。解析操作可以利用DOM、SAX、D0M4J、JDOM四種方式中任一種的接口來實現(xiàn)。在上述技術(shù)方案中,優(yōu)選地,步驟104包括在XML文件中查找預(yù)定類型的數(shù)據(jù)對應(yīng)的每個節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記,過濾掉每個節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記之間的數(shù)據(jù)。通過該技術(shù)方案,由于XML文件中存儲的數(shù)據(jù),一般指文本數(shù)據(jù),均位于其樹形結(jié)構(gòu)的子節(jié)點之下,所以,通過查找子節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記,可以方便地去除該子節(jié)點下的數(shù)據(jù)。在上述技術(shù)方案中,優(yōu)選地,步驟102具體為分多個數(shù)據(jù)塊讀入XML文件;步驟 104具體為在讀入每個數(shù)據(jù)塊時,都對每個數(shù)據(jù)塊中的預(yù)定類型的數(shù)據(jù)進(jìn)行過濾。通過該技術(shù)方案,將XML分塊讀入,而不需整個讀入,能夠有效地緩解硬件如內(nèi)存的壓力。在上述技術(shù)方案中,優(yōu)選地,步驟104具體為在多個數(shù)據(jù)塊中,查找預(yù)定類型的數(shù)據(jù)對應(yīng)的每個節(jié)點的開始標(biāo)記,并在找到開始標(biāo)記后查找每個節(jié)點的結(jié)束標(biāo)記,其中,對于預(yù)定類型的數(shù)據(jù)對應(yīng)的預(yù)定節(jié)點,在讀入的數(shù)據(jù)塊中存在預(yù)定節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記的情況下,過濾掉數(shù)據(jù)塊中預(yù)定節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記之間的數(shù)據(jù),在數(shù)據(jù)塊中僅存在預(yù)定節(jié)點的開始標(biāo)記的情況下,過濾掉數(shù)據(jù)塊中的預(yù)定節(jié)點的開始標(biāo)記之后的數(shù)據(jù), 在數(shù)據(jù)塊中僅存在預(yù)定節(jié)點的結(jié)束標(biāo)記的情況下,過濾掉數(shù)據(jù)塊中的預(yù)定節(jié)點的結(jié)束標(biāo)記之前的數(shù)據(jù),在數(shù)據(jù)塊中不存在預(yù)定類型的數(shù)據(jù)對應(yīng)的任一節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記的情況下,則在當(dāng)前查找任一節(jié)點的結(jié)束標(biāo)記時,過濾掉數(shù)據(jù)塊中的所有數(shù)據(jù)。在上述技術(shù)方案中,優(yōu)選地,步驟102具體為設(shè)置固定大小的緩存區(qū)域,通過緩存區(qū)域?qū)ML文件分多個數(shù)據(jù)塊讀入。本發(fā)明還提供一種XML文件解析裝置,包括讀入模塊,讀入XML文件;過濾模塊, 過濾掉XML文件中的預(yù)定類型的數(shù)據(jù);解析模塊,對過濾掉預(yù)定類型的數(shù)據(jù)的XML文件進(jìn)行解析。通過該技術(shù)方案,在不影響XML結(jié)構(gòu)的情況下,將不必要的數(shù)據(jù)去掉,減小了 XML文件的體積,保證了解析的效率。預(yù)定類型的數(shù)據(jù)可以是存儲在XML多個類型的節(jié)點(也稱為元素)下的數(shù)據(jù),其中,對于占用空間較大的大數(shù)據(jù),該技術(shù)方案尤為適用。解析操作可以利用DOM、SAX、D0M4J、JDOM四種方式中任一種的接口來實現(xiàn)。在上述技術(shù)方案中,優(yōu)選地,過濾模塊在XML文件中查找預(yù)定類型的數(shù)據(jù)對應(yīng)的每個節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記,過濾掉每個節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記之間的數(shù)據(jù)。通過該技術(shù)方案,由于XML文件中存儲的數(shù)據(jù),一般指文本數(shù)據(jù),均位于其樹形結(jié)構(gòu)的子節(jié)點之下,所以,通過查找子節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記,可以方便地去除該子節(jié)點下的數(shù)據(jù)。在上述技術(shù)方案中,優(yōu)選地,讀入模塊分多個數(shù)據(jù)塊讀入XML文件;在讀入模塊讀入每個數(shù)據(jù)塊時,過濾模塊都對每個數(shù)據(jù)塊中的預(yù)定類型的數(shù)據(jù)進(jìn)行過濾。通過該技術(shù)方案,將XML分塊讀入,而不需整個讀入,能夠有效地緩解硬件如內(nèi)存的壓力。在上述技術(shù)方案中,優(yōu)選地,過濾模塊在多個數(shù)據(jù)塊中,查找預(yù)定類型的數(shù)據(jù)對應(yīng)的每個節(jié)點的開始標(biāo)記,并在找到開始標(biāo)記后查找每個節(jié)點的結(jié)束標(biāo)記,其中,對于預(yù)定類型的數(shù)據(jù)對應(yīng)的預(yù)定節(jié)點,在讀入的數(shù)據(jù)塊中存在預(yù)定節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記的情況下,過濾模塊過濾掉數(shù)據(jù)塊中預(yù)定節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記之間的數(shù)據(jù),在數(shù)據(jù)塊中僅存在預(yù)定節(jié)點的開始標(biāo)記的情況下,過濾模塊過濾掉數(shù)據(jù)塊中的預(yù)定節(jié)點的開始標(biāo)記之后的數(shù)據(jù),在數(shù)據(jù)塊中僅存在預(yù)定節(jié)點的結(jié)束標(biāo)記的情況下,過濾模塊過濾掉數(shù)據(jù)塊中的預(yù)定節(jié)點的結(jié)束標(biāo)記之前的數(shù)據(jù),在數(shù)據(jù)塊中不存在預(yù)定類型數(shù)據(jù)對應(yīng)的任一節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記的情況下,則在當(dāng)前查找任一節(jié)點的結(jié)束標(biāo)記時,過濾模塊過濾掉數(shù)據(jù)塊中的所有數(shù)據(jù)。在上述技術(shù)方案中,優(yōu)選地,讀入模塊設(shè)置固定大小的緩存區(qū)域,通過緩存區(qū)域?qū)?XML文件分多個數(shù)據(jù)塊讀入。本發(fā)明還提供一種終端,包括如上所述的XML文件解析裝置。通過以上技術(shù)方案,本發(fā)明提供一種XML文件解析方法、一種XML文件解析裝置和一種終端,通過將XML分塊讀入,并每次讀入的時候去除其中不必要的數(shù)據(jù),提高了 XML文件的解析效率,并緩解了內(nèi)存等硬件的壓力。
圖1是根據(jù)本發(fā)明的一個實施例的XML文件解析方法的流程圖;圖2是根據(jù)本發(fā)明的一個實施例的XML文件解析裝置的框圖;圖3是根據(jù)本發(fā)明的一個實施例的終端的框圖4是根據(jù)本發(fā)明的一個實施例的終端的使用流程圖。
具體實施例方式為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實施方式
對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明并不限于下面公開的具體實施例的限制。圖1是根據(jù)本發(fā)明的一個實施例的XML文件解析方法的流程圖。如圖1所示,本發(fā)明提供一種XML文件解析方法,包括步驟102,讀入XML文件; 步驟104,過濾掉XML文件中的預(yù)定類型的數(shù)據(jù);步驟106,對過濾掉預(yù)定類型的數(shù)據(jù)的XML 文件進(jìn)行解析。通過該技術(shù)方案,不影響XML結(jié)構(gòu)的情況下,將不必要的數(shù)據(jù)去掉,減小了 XML文件的體積,保證了解析的效率。預(yù)定類型的數(shù)據(jù)可以是存儲在XML多個類型的節(jié)點 (也稱為元素)下的數(shù)據(jù),其中,對于占用空間較大的大數(shù)據(jù),該技術(shù)方案尤為適用。解析操作可以利用DOM、SAX、D0M4J、JDOM四種方式中任一種的接口來實現(xiàn)。在上述技術(shù)方案中,步驟104包括在XML文件中查找預(yù)定類型的數(shù)據(jù)對應(yīng)的每個節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記,過濾掉每個節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記之間的數(shù)據(jù)。通過該技術(shù)方案,由于XML文件中存儲的數(shù)據(jù),一般指文本數(shù)據(jù),均位于其樹形結(jié)構(gòu)的子節(jié)點之下,所以,通過查找子節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記,可以方便地去除該子節(jié)點下的數(shù)據(jù)。在上述技術(shù)方案中,步驟102具體為分多個數(shù)據(jù)塊讀入XML文件;步驟104具體為在讀入每個數(shù)據(jù)塊時,都對每個數(shù)據(jù)塊中的預(yù)定類型的數(shù)據(jù)進(jìn)行過濾。通過該技術(shù)方案,將XML分塊讀入,而不需整個讀入,能夠有效地緩解硬件如內(nèi)存的壓力。在上述技術(shù)方案中,步驟104具體為在多個數(shù)據(jù)塊中,查找預(yù)定類型的數(shù)據(jù)對應(yīng)的每個節(jié)點的開始標(biāo)記,并在找到開始標(biāo)記后查找每個節(jié)點的結(jié)束標(biāo)記,其中,對于預(yù)定類型的數(shù)據(jù)對應(yīng)的預(yù)定節(jié)點,在讀入的數(shù)據(jù)塊中存在預(yù)定節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記的情況下,過濾掉數(shù)據(jù)塊中預(yù)定節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記之間的數(shù)據(jù),在數(shù)據(jù)塊中僅存在預(yù)定節(jié)點的開始標(biāo)記的情況下,過濾掉數(shù)據(jù)塊中的預(yù)定節(jié)點的開始標(biāo)記之后的數(shù)據(jù),在數(shù)據(jù)塊中僅存在預(yù)定節(jié)點的結(jié)束標(biāo)記的情況下,過濾掉數(shù)據(jù)塊中的預(yù)定節(jié)點的結(jié)束標(biāo)記之前的數(shù)據(jù),在數(shù)據(jù)塊中不存在預(yù)定類型的數(shù)據(jù)對應(yīng)的任一節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記的情況下, 則在當(dāng)前查找任一節(jié)點的結(jié)束標(biāo)記時,過濾掉數(shù)據(jù)塊中的所有數(shù)據(jù)。在上述技術(shù)方案中,步驟102具體為設(shè)置固定大小的緩存區(qū)域,通過緩存區(qū)域?qū)?XML文件分多個數(shù)據(jù)塊讀入。圖2是根據(jù)本發(fā)明的一個實施例的XML文件解析裝置的框圖。如圖2所示,本發(fā)明還提供一種XML文件解析裝置200,包括讀入模塊202,讀入 XML文件;過濾模塊204,過濾掉XML文件中的預(yù)定類型的數(shù)據(jù);解析模塊206,對過濾掉預(yù)定類型的數(shù)據(jù)的XML文件進(jìn)行解析。通過該技術(shù)方案,在不影響XML結(jié)構(gòu)的情況下,將不必要的數(shù)據(jù)去掉,減小了 XML文件的體積,保證了解析的效率。預(yù)定類型的數(shù)據(jù)可以是存儲在 XML多個類型的節(jié)點(也稱為元素)下的數(shù)據(jù),其中,對于占用空間較大的大數(shù)據(jù),該技術(shù)方案尤為適用。解析操作可以利用DOM、SAX、D0M4J、JDOM四種方式中任一種的接口來實現(xiàn)。
在上述技術(shù)方案中,過濾模塊204在XML文件中查找預(yù)定類型的數(shù)據(jù)對應(yīng)的每個節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記,過濾掉每個節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記之間的數(shù)據(jù)。通過該技術(shù)方案,由于XML文件中存儲的數(shù)據(jù),一般指文本數(shù)據(jù),均位于其樹形結(jié)構(gòu)的子節(jié)點之下,所以,通過查找子節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記,可以方便地去除該子節(jié)點下的數(shù)據(jù)。在上述技術(shù)方案中,讀入模塊202分多個數(shù)據(jù)塊讀入XML文件;在讀入模塊202讀入每個數(shù)據(jù)塊時,過濾模塊204都對每個數(shù)據(jù)塊中的預(yù)定類型的數(shù)據(jù)進(jìn)行過濾。通過該技術(shù)方案,將XML分塊讀入,而不需整個讀入,能夠有效地緩解硬件如內(nèi)存的壓力。在上述技術(shù)方案中,過濾模塊204在多個數(shù)據(jù)塊中,查找預(yù)定類型的數(shù)據(jù)對應(yīng)的每個節(jié)點的開始標(biāo)記,并在找到開始標(biāo)記后查找每個節(jié)點的結(jié)束標(biāo)記,其中,對于預(yù)定類型的數(shù)據(jù)對應(yīng)的預(yù)定節(jié)點,在讀入的數(shù)據(jù)塊中存在預(yù)定節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記的情況下,過濾模塊204過濾掉數(shù)據(jù)塊中預(yù)定節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記之間的數(shù)據(jù),在數(shù)據(jù)塊中僅存在預(yù)定節(jié)點的開始標(biāo)記的情況下,過濾模塊204過濾掉數(shù)據(jù)塊中的預(yù)定節(jié)點的開始標(biāo)記之后的數(shù)據(jù),在數(shù)據(jù)塊中僅存在預(yù)定節(jié)點的結(jié)束標(biāo)記的情況下,過濾模塊204過濾掉數(shù)據(jù)塊中的預(yù)定節(jié)點的結(jié)束標(biāo)記之前的數(shù)據(jù),在數(shù)據(jù)塊中不存在預(yù)定類型數(shù)據(jù)對應(yīng)的任一節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記的情況下,則在當(dāng)前查找任一節(jié)點的結(jié)束標(biāo)記時,過濾模塊204 過濾掉數(shù)據(jù)塊中的所有數(shù)據(jù)。在上述技術(shù)方案中,讀入模塊202設(shè)置固定大小的緩存區(qū)域,通過緩存區(qū)域?qū)ML 文件分多個數(shù)據(jù)塊讀入。圖3是根據(jù)本發(fā)明的一個實施例的終端的框圖。如圖3所示,本發(fā)明還提供一種終端300,包括如上所述的XML文件解析裝置 200。圖4是根據(jù)本發(fā)明的一個實施例的終端的使用流程圖。XML格式當(dāng)前已經(jīng)成為一種通用的數(shù)據(jù)交換格式,它的平臺無關(guān)性、語言無關(guān)性已經(jīng)給信息技術(shù)的交互帶來了極大的方便。本實施例中的終端,通過java流方式將XML文件分固定塊讀取,過濾其中的大數(shù)據(jù)節(jié)點,從而獲取XML完整結(jié)構(gòu)所在的數(shù)據(jù)串,然后利用現(xiàn)有DOM、SAX、D0M4J、JDOM之一提供的接口進(jìn)行整個XML數(shù)據(jù)串的解析功能進(jìn)行解析。對于存在一個大數(shù)據(jù)節(jié)點的XML文件, 本實施例中的具體步驟如下步驟402,使用java中的輸入流FileInputMream方法打開XML文件;步驟404,通過readO接口讀取固定大小的數(shù)據(jù)塊到緩存中;步驟406,通過Mring中的indexOf方法,判斷緩存中的數(shù)據(jù)塊中是否存在大數(shù)據(jù)節(jié)點的開始(例如,該大數(shù)據(jù)節(jié)點的開始標(biāo)記可以是〈binary ,如果不存在,進(jìn)入步驟 408,如果存在,進(jìn)入步驟410 ;步驟408,將當(dāng)前的數(shù)據(jù)塊中的所有數(shù)據(jù)存儲到數(shù)據(jù)串A中,并進(jìn)入步驟404,繼續(xù)讀取數(shù)據(jù)塊;步驟410,如果存在,將該數(shù)據(jù)塊中開始標(biāo)記之前的所有數(shù)據(jù)記錄到數(shù)據(jù)串A中;步驟412,繼續(xù)采用indexOf方法,判斷緩沖的數(shù)據(jù)塊中是否存在大數(shù)據(jù)節(jié)點的結(jié)束標(biāo)記(如,可以是〈/binary ,如果不存在,進(jìn)入步驟414,如果存在,進(jìn)入步驟416 ;步驟414,過濾掉該數(shù)據(jù)塊的全部數(shù)據(jù),并通過read()接口繼續(xù)讀取下一個數(shù)據(jù)塊;步驟416,保存結(jié)束標(biāo)記之后的所有數(shù)據(jù)追加到A中,包括后續(xù)讀取的數(shù)據(jù)塊中的數(shù)據(jù);步驟418,形成待解析的數(shù)據(jù)串A,其中,如果XML數(shù)據(jù)串中不只包括一個大數(shù)據(jù)節(jié)點或還存在其他類型的待過濾的數(shù)據(jù)的話,則繼續(xù)查找其他的節(jié)點開始標(biāo)記,并重復(fù)上述的步驟,并最終形成待解析的XML數(shù)據(jù)串;步驟420,最后通過DOM、SAX、D0M4J、JDOM提供的接口,傳入數(shù)據(jù)A串(剔除大節(jié)點的數(shù)據(jù)),正常解析XML結(jié)構(gòu)。通過以上技術(shù)方案,可以實現(xiàn)一種XML文件解析方法、一種XML文件解析裝置以及一種終端,通過分塊讀入XML文件,并在每次讀入的時候進(jìn)行數(shù)據(jù)過濾,大大縮短了文件的處理時間,尤其是對于包含大數(shù)據(jù)節(jié)點(大小大于20M)的XML文件,同時,使得解析環(huán)境的硬件環(huán)境要求大大降低,極大地縮減了硬件的投入成本。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種XML文件解析方法,其特征在于,包括 步驟102,讀入所述XML文件;步驟104,過濾掉所述XML文件中的預(yù)定類型的數(shù)據(jù); 步驟106,對過濾掉所述預(yù)定類型的數(shù)據(jù)的XML文件進(jìn)行解析。
2.根據(jù)權(quán)利要求1所述的XML文件解析方法,其特征在于,所述步驟104包括 在所述XML文件中查找所述預(yù)定類型的數(shù)據(jù)對應(yīng)的每個節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記,過濾掉所述每個節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記之間的數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的XML文件解析方法,其特征在于,所述步驟102具體為 分多個數(shù)據(jù)塊讀入所述XML文件;所述步驟104具體為在讀入每個數(shù)據(jù)塊時,都對所述每個數(shù)據(jù)塊中的所述預(yù)定類型的數(shù)據(jù)進(jìn)行過濾。
4.根據(jù)權(quán)利要求3所述的XML文件解析方法,其特征在于,所述步驟104具體為在所述多個數(shù)據(jù)塊中,查找所述預(yù)定類型的數(shù)據(jù)對應(yīng)的每個節(jié)點的開始標(biāo)記,并在找到所述開始標(biāo)記后查找所述每個節(jié)點的結(jié)束標(biāo)記,其中,對于所述預(yù)定類型的數(shù)據(jù)對應(yīng)的預(yù)定節(jié)點,在讀入的數(shù)據(jù)塊中存在所述預(yù)定節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記的情況下,過濾掉所述數(shù)據(jù)塊中所述預(yù)定節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記之間的數(shù)據(jù),在所述數(shù)據(jù)塊中僅存在所述預(yù)定節(jié)點的開始標(biāo)記的情況下,過濾掉所述數(shù)據(jù)塊中的所述預(yù)定節(jié)點的開始標(biāo)記之后的數(shù)據(jù),在所述數(shù)據(jù)塊中僅存在所述預(yù)定節(jié)點的結(jié)束標(biāo)記的情況下,過濾掉所述數(shù)據(jù)塊中的所述預(yù)定節(jié)點的結(jié)束標(biāo)記之前的數(shù)據(jù),在所述數(shù)據(jù)塊中不存在所述預(yù)定類型的數(shù)據(jù)對應(yīng)的任一節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記的情況下,則在當(dāng)前查找所述任一節(jié)點的結(jié)束標(biāo)記時,過濾掉所述數(shù)據(jù)塊中的所有數(shù)據(jù)。
5.根據(jù)權(quán)利要求3或4所述的XML文件解析方法,其特征在于,所述步驟102具體為 設(shè)置固定大小的緩存區(qū)域,通過所述緩存區(qū)域?qū)⑺鯴ML文件分所述多個數(shù)據(jù)塊讀入。
6.一種XML文件解析裝置,其特征在于,包括 讀入模塊,讀入所述XML文件;過濾模塊,過濾掉所述XML文件中的預(yù)定類型的數(shù)據(jù); 解析模塊,對過濾掉所述預(yù)定類型的數(shù)據(jù)的XML文件進(jìn)行解析。
7.根據(jù)權(quán)利要求6所述的XML文件解析裝置,其特征在于,所述過濾模塊在所述XML文件中查找所述預(yù)定類型的數(shù)據(jù)對應(yīng)的每個節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記,過濾掉所述每個節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記之間的數(shù)據(jù)。
8.根據(jù)權(quán)利要求6所述的XML文件解析裝置,其特征在于,所述讀入模塊分多個數(shù)據(jù)塊讀入所述XML文件;在所述讀入模塊讀入每個數(shù)據(jù)塊時,所述過濾模塊都對所述每個數(shù)據(jù)塊中的所述預(yù)定類型的數(shù)據(jù)進(jìn)行過濾。
9.根據(jù)權(quán)利要求8所述的XML文件解析裝置,其特征在于,所述過濾模塊在所述多個數(shù)據(jù)塊中,查找所述預(yù)定類型的數(shù)據(jù)對應(yīng)的每個節(jié)點的開始標(biāo)記,并在找到所述開始標(biāo)記后查找所述每個節(jié)點的結(jié)束標(biāo)記,其中,對于所述預(yù)定類型的數(shù)據(jù)對應(yīng)的預(yù)定節(jié)點,在讀入的數(shù)據(jù)塊中存在所述預(yù)定節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記的情況下,所述過濾模塊過濾掉所述數(shù)據(jù)塊中所述預(yù)定節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記之間的數(shù)據(jù),在所述數(shù)據(jù)塊中僅存在所述預(yù)定節(jié)點的開始標(biāo)記的情況下,所述過濾模塊過濾掉所述數(shù)據(jù)塊中的所述預(yù)定節(jié)點的開始標(biāo)記之后的數(shù)據(jù),在所述數(shù)據(jù)塊中僅存在所述預(yù)定節(jié)點的結(jié)束標(biāo)記的情況下,所述過濾模塊過濾掉所述數(shù)據(jù)塊中的所述預(yù)定節(jié)點的結(jié)束標(biāo)記之前的數(shù)據(jù),在所述數(shù)據(jù)塊中不存在所述預(yù)定類型的數(shù)據(jù)對應(yīng)的任一節(jié)點的開始標(biāo)記和結(jié)束標(biāo)記的情況下,則在當(dāng)前查找所過濾模塊過濾掉所述數(shù)據(jù)塊中的所有數(shù)據(jù)。述任一節(jié)點的結(jié)束標(biāo)記時,所述
10.根據(jù)權(quán)利要求8或9所述的XML文件解析裝置,其特征在于,所述讀入模塊設(shè)置固定大小的緩存區(qū)域,通過所述緩存區(qū)域?qū)⑺鯴ML文件分所述多個數(shù)據(jù)塊讀入。
11.一種終端,其特征在于,包括如權(quán)利要求6至10中任一項所述的XML文件解析裝置。
全文摘要
本發(fā)明提供一種XML文件解析方法,包括步驟102,讀XML文件;步驟104,過濾掉XML文件中的預(yù)定類型的數(shù)據(jù);步驟106,對過濾掉預(yù)定類型的數(shù)據(jù)的XML文件進(jìn)行解析。本發(fā)明還提供一種XML文件解析裝置和一種終端。通過本發(fā)明,通過將XML分塊讀入,并每次讀入的時候去除其中不必要的數(shù)據(jù),提高了XML文件的解析效率,并緩解了內(nèi)存等硬件的壓力。
文檔編號G06F17/30GK102289445SQ20111014580
公開日2011年12月21日 申請日期2011年6月1日 優(yōu)先權(quán)日2011年6月1日
發(fā)明者侯元斌 申請人:宇龍計算機(jī)通信科技(深圳)有限公司