一種基于Java生成XML文件的方法
【專利摘要】本發(fā)明公開了一種基于Java生成XML文件的方法,該方法通過用戶自定義XML格式生成指定的XML文件,利用Java正則表達(dá)式解析用戶定義的條件格式,通過對數(shù)據(jù)的遍歷篩選出符合條件的數(shù)據(jù)追加到XML節(jié)點中,利用Java的反射機制生成XML節(jié)點的屬性名和屬性值。本發(fā)明能夠給自動生成用戶定義數(shù)據(jù)格式的XML文件,實現(xiàn)定制生成XML文件的功能,當(dāng)用戶想要生成XML文件時,只需調(diào)用相應(yīng)的接口即可,無需重新編寫代碼,減少編碼工作量,提高工作效率。
【專利說明】—種基于Java生成XML文件的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,尤其涉及一種基于Java生成XML文件的方法。
【背景技術(shù)】
[0002]XML是可擴展標(biāo)記語言,它可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標(biāo)記語言進(jìn)行定義的源語言,XML是各種應(yīng)用程序之間進(jìn)行數(shù)據(jù)傳輸?shù)淖畛S玫墓ぞ?。它提供了一種描述結(jié)構(gòu)數(shù)據(jù)的格式,簡化了網(wǎng)絡(luò)中數(shù)據(jù)交換和表示,使得代碼、數(shù)據(jù)和表示分離,并作為數(shù)據(jù)交換的標(biāo)準(zhǔn)格式,并且格式靈活、因此XML被大多數(shù)應(yīng)用系統(tǒng)和網(wǎng)站作為數(shù)據(jù)傳輸?shù)墓ぞ摺?br>
[0003]CN201110042859.5的發(fā)明專利申請公開了一種XML文件生成方法及裝置、終端設(shè)備。其中,該方法包括:創(chuàng)建XML文件模板,XML文件模板包括:一個或多個文件標(biāo)簽;根據(jù)XML文件的模板來獲取XML生成工具;在XML生成工具獲取輸入數(shù)據(jù)之后,自動生成XML文件。通過本發(fā)明,能夠根據(jù)需求靈活的控制資源內(nèi)容,節(jié)省應(yīng)用的存儲空間,方便了圖文類的應(yīng)用開發(fā)及內(nèi)容維護(hù),提高了研發(fā)人員的工作效率。
[0004]上述方法需要創(chuàng)建XML文件模板和使用XML生成工具獲取輸入數(shù)據(jù)才能自動生成XML文件,無法根據(jù)數(shù)據(jù)庫查詢的數(shù)據(jù)或者用戶定義的XML格式生成XML文件,不夠靈活,沒有做到完全自動的生成XML文件。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是為了克服現(xiàn)有技術(shù)的缺陷,提供一種基于Java生成XML文件的方法,該方法的步驟如下:
[0006]s 1、設(shè)置XML文件存儲的名稱;
[0007]s2、設(shè)置XML文件存儲的編碼;
[0008]S3、定義XML根節(jié)點的名稱和XML子節(jié)點的名稱;
[0009]s4、設(shè)置XML父級節(jié)點和子級節(jié)點之間的關(guān)系;
[0010]S5、利用Java正則表達(dá)式對用戶定義的數(shù)據(jù)格式進(jìn)行解析;
[0011]s6、對查詢返回數(shù)據(jù)進(jìn)行遍歷;
[0012]s7、Java的反射機制對數(shù)據(jù)進(jìn)行解析,根據(jù)Java實體類的屬性名生成XML節(jié)點的屬性名并進(jìn)行賦值操作;
[0013]s8、判斷當(dāng)前數(shù)據(jù)是否符合用戶定義的條件,將符合條件的數(shù)據(jù)追加到XML節(jié)點中,如果不符合,則繼續(xù)遍歷數(shù)據(jù);
[0014]s9、生成并返回一個XML文件。
[0015]本發(fā)明技術(shù)方案帶來的有益效果:
[0016]本發(fā)明能夠給自動生成用戶定義數(shù)據(jù)格式的XML文件,實現(xiàn)定制生成XML文件的功能,通過設(shè)置XML父級節(jié)點和子級節(jié)點之間的關(guān)系,自動生成XML節(jié)點之間的關(guān)系,生成用戶想要格式的XML文件,非常的靈活,用戶能夠很直觀的看出數(shù)據(jù)之間的關(guān)系,層次感強。當(dāng)用戶想要生成XML文件時,只需調(diào)用相應(yīng)的接口即可,無需重新編寫代碼,減少編碼工作量,提高工作效率。
【專利附圖】
【附圖說明】
[0017]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0018]圖1是本發(fā)明的方法流程圖。
【具體實施方式】
[0019]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0020]本發(fā)明的主要創(chuàng)新點在于可以根據(jù)用戶自定義的XML格式來生成XML文件。首先設(shè)置XML的文件名,設(shè)置XML文件存儲的編碼,以UTF-8編碼存儲或者以GBK編碼存儲;定義XML根節(jié)點的名稱和XML子節(jié)點的名稱,根據(jù)用戶定義的節(jié)點名稱創(chuàng)建XML節(jié)點;設(shè)置XML父級節(jié)點和子級節(jié)點之間的關(guān)系,同級關(guān)系或者子級關(guān)系;利用Java的正則表達(dá)式對用戶定義的數(shù)據(jù)格式進(jìn)行解析,查詢數(shù)據(jù)庫,然后根據(jù)設(shè)置的條件對查詢返回的數(shù)據(jù)進(jìn)行遍歷,在遍歷的過程中利用Java的反射機制對數(shù)據(jù)進(jìn)行解析,根據(jù)Java實體類的屬性名生成XML節(jié)點的屬性名并進(jìn)行賦值操作;在遍歷的過程中,判斷當(dāng)前數(shù)據(jù)是否符合用戶定義的條件,如果符合則將符合條件的數(shù)據(jù)追加到的XML節(jié)點中,如果不符合,則繼續(xù)遍歷數(shù)據(jù),直至數(shù)據(jù)遍歷完成,最終生成并返回一個用戶定義格式的XML文件。
[0021]如圖1所示為本發(fā)明的方法流程圖,其實現(xiàn)步驟如下:
[0022](1)設(shè)置XML文件存儲的名稱;
[0023](2)設(shè)置XML文件存儲的編碼;
[0024](3)定義XML根節(jié)點的名稱和XML子節(jié)點的名稱;
[0025](4)設(shè)置XML父級節(jié)點和子級節(jié)點之間的關(guān)系;
[0026](5)利用Java正則表達(dá)式對用戶定義的數(shù)據(jù)格式進(jìn)行解析;
[0027](6)對查詢返回數(shù)據(jù)進(jìn)行遍歷;
[0028](7) Java的反射機制對數(shù)據(jù)進(jìn)行解析,根據(jù)Java實體類的屬性名生成XML節(jié)點的屬性名并進(jìn)行賦值操作;
[0029](8)判斷當(dāng)前數(shù)據(jù)是否符合用戶定義的條件,將符合條件的數(shù)據(jù)追加到XML節(jié)點中,如果不符合,則繼續(xù)遍歷數(shù)據(jù);
[0030](9)生成并返回一個XML文件。
[0031]通過本發(fā)明解決了項目中使用XML文件進(jìn)行數(shù)據(jù)交互或者數(shù)據(jù)傳輸?shù)膯栴}。因XML數(shù)據(jù)格式靈活、多變、可以自己定義節(jié)點的名稱,如果對每種格式的XML文件都單獨處理的話就很耗時間,本發(fā)明提供的一種基于Java生成XML文件的方法,能夠生成多種數(shù)據(jù)格式的XML文件,還能夠根據(jù)用戶定義XML節(jié)點的名稱以及設(shè)置XML節(jié)點之間的層級關(guān)系來生成XML文件。
[0032]本發(fā)明還能夠通過生成多個XML文件,然后根據(jù)用戶需要在對多個XML進(jìn)行修改而形成用戶想要的XML文件,或者還能夠通過生成沒有特定數(shù)據(jù)格式的XML文件,當(dāng)用戶需要特定的就再在沒有特定數(shù)據(jù)格式的XML的基礎(chǔ)上在定制開發(fā)。
[0033]以上對本發(fā)明實施例所提供的一種基于Java生成XML文件的方法進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【權(quán)利要求】
1.一種基于Java生成XML文件的方法,其特征在于,該方法通過用戶自定義XML格式生成指定的XML文件,利用Java正則表達(dá)式解析用戶定義的條件格式,通過對數(shù)據(jù)的遍歷篩選出符合條件的數(shù)據(jù)追加到XML節(jié)點中,利用Java的反射機制生成XML節(jié)點的屬性名和屬性值,其包括如下步驟: S1、設(shè)置XML文件存儲的名稱; s2、設(shè)置XML文件存儲的編碼; S3、定義XML根節(jié)點的名稱和XML子節(jié)點的名稱; s4、設(shè)置XML父級節(jié)點和子級節(jié)點之間的關(guān)系; s5、利用Java正則表達(dá)式對用戶定義的數(shù)據(jù)格式進(jìn)行解析; s6、對查詢返回數(shù)據(jù)進(jìn)行遍歷; s7、Java的反射機制對數(shù)據(jù)進(jìn)行解析,根據(jù)Java實體類的屬性名生成XML節(jié)點的屬性名并進(jìn)行賦值操作; s8、判斷當(dāng)前數(shù)據(jù)是否符合用戶定義的條件,將符合條件的數(shù)據(jù)追加到XML節(jié)點中,如果不符合,則繼續(xù)遍歷數(shù)據(jù); s9、生成并返回一個XML文件。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,XML文件存儲的編碼,能夠以UTF-8編碼存儲或者以GBK編碼存儲。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,本發(fā)明還能夠通過生成多個XML文件,然后根據(jù)用戶需要在對多個XML進(jìn)行修改而形成用戶想要的XML文件。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,本發(fā)明還能夠通過生成沒有特定數(shù)據(jù)格式的XML文件,當(dāng)用戶需要特定的就再在沒有特定數(shù)據(jù)格式的XML的基礎(chǔ)上在定制開發(fā)。
【文檔編號】G06F9/45GK104360890SQ201410555608
【公開日】2015年2月18日 申請日期:2014年10月17日 優(yōu)先權(quán)日:2014年10月17日
【發(fā)明者】柯宗貴, 楊育斌, 古奕奎 申請人:藍(lán)盾信息安全技術(shù)有限公司