欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于XPath動態(tài)支持XML多語言的方法

文檔序號:6524450閱讀:173來源:國知局
一種基于XPath動態(tài)支持XML多語言的方法
【專利摘要】本發(fā)明涉及利用XPath動態(tài)支持多語言的方法,所述方法通過增加現(xiàn)有XML文檔的資源文件而無需改動現(xiàn)有的XML文件,在運行時動態(tài)加載XML資源來達到多語的效果。事實證明,使用這個方案,極大提高了XML文檔的多語言支持效率。
【專利說明】—種基于XPath動態(tài)支持XML多語言的方法
【技術領域】
[0001]本發(fā)明涉及一種支持XML多語言的方法,特別是指一種基于XPath動態(tài)支持XML多語言的方法,適用于軟件開發(fā)活動中動態(tài)的、快速的、增量化的實現(xiàn)XML的多語言支持,并且不需要改動任何原有的XML。
【背景技術】
[0002]XML(全稱 Extensible Markup Language),是一種專門為 internet 而設計的一種標記語言,且由于其具有有效的表達各種信息、數(shù)據(jù)和使各種應用協(xié)同工作的能力,業(yè)已成為數(shù)據(jù)發(fā)布和數(shù)據(jù)交換的事實標準,因此,XML在近幾年得到了發(fā)展和廣泛的應用。
[0003]多語言支持是指在產(chǎn)品中可以顯示不同語言并且實現(xiàn)不同語言間的動態(tài)切換,而XML常用于在產(chǎn)品中定制界面顯示或者業(yè)務流程。
[0004]XPath是一門在XML文檔中查找信息的語言。XPath用于在XML文檔中通過元素和屬性進行導航,定位任何XML中的節(jié)點元素,包括XML節(jié)點、XML屬性等等。
[0005]為了做到靈活定制用戶界面的需求,很多產(chǎn)品采用XML文檔的方式來定義用戶界面或者流程,這樣就涉及XML多語言化的困難,尤其對于:
[0006]1.產(chǎn)品中存在大量的XML,但每個XML文檔都不是很大,例如在50KB之內(nèi);
[0007]2.產(chǎn)品已商用多年,積累了一定數(shù)量的客戶,產(chǎn)品的改動影響面較大;
[0008]3.要求在短時間內(nèi),快速實現(xiàn)產(chǎn)品XML的多語言支持。
[0009]現(xiàn)有技術中對于XML多語言支持主要有以下兩種方法:
[0010]第一種:在XML中將需要多語言化的元素使用特定的格式或者函數(shù)代替,利用當中包含的資源編號,去數(shù)據(jù)庫中或者資源文件中查找翻譯后的值。該方法增加了修改XML文檔的工作量,同時也損失了原有XML文檔的可讀性,同時要求對所有資源的默認值實現(xiàn)全覆蓋,否則會造成界面文本的異常。
[0011]2、利用Schema文件,將XML文檔多語言化。這個方法要求開發(fā)人員熟悉Schema語法,同時使得后期XML文檔與Schema同步困難。

【發(fā)明內(nèi)容】

[0012]為克服上述現(xiàn)有技術的不足本發(fā)明提出了一種基于XPath動態(tài)支持多語言的方法,該發(fā)明通過增加現(xiàn)有XML文檔的資源文件而無需改動現(xiàn)有的XML文件,在運行時動態(tài)加載XML資源來達到多語言的效果。通過多個項目實施,采用該方案,極大地提升了 XML文檔的多語言支持效率。
[0013]為實現(xiàn)上述發(fā)明目的,本發(fā)明采用的技術方案如下:
[0014]步驟101,提取多語言資源,并判斷提取多語言資源是否成功;如果步驟101的判斷結(jié)果為未提取成功,則結(jié)束所有流程;如果步驟101的判斷結(jié)果為提取成功,則執(zhí)行步驟102 ;
[0015]步驟102,部署多語言資源;[0016]步驟103,應用多語言資源;
[0017]結(jié)束。
[0018]優(yōu)選地,步驟101中的提取多語言資源進一步包括,
[0019]步驟201,裝載提取規(guī)則;
[0020]步驟202,裝載待提取XML文件。
[0021]步驟203,以/為分隔XPath通配式,并匹配XML節(jié)點;如果匹配成功,將XPath表達式各個部分分別進行存儲,供后續(xù)204步驟使用;如果匹配失敗,則結(jié)束當前提取流程;
[0022]步驟204,匹配XPath通配式的各個部分;
[0023]在步驟203中,通配式由/符號分割成多個部分,并進行匹配;如果匹配未完成,則返回至步驟203 ;如果匹配完成,則進行步驟205 ;
[0024]步驟205,形成XPath表達式并存儲。
[0025]優(yōu)選地,步驟102中的部署多語言資源進一步包括,將多語言資源部署至數(shù)據(jù)庫中、文件中甚至.resx文件中的一處或多處,并使得不同語言的不同資源能夠唯一定位。
[0026]優(yōu)選地,步驟103中的應用提取多語言資源進一步包括,
[0027]步驟401,裝載XML文檔;
[0028]步驟402,查看是否有相關XML資源;如果判斷結(jié)果為沒有相關的XML資源,則結(jié)束當前的所有流程,結(jié)束;如果判斷結(jié)果是有相關的XML資源,則繼續(xù)執(zhí)行步驟403 ;
[0029]步驟403,修改XML文檔為多語言的XML文檔;遍歷步驟402中得到的XML資源項集合,遍歷所有得到的資源項集合,并將XPath表達式指定的XML節(jié)點值替換為XML資源中的多語言資源值。
[0030]優(yōu)選地,所述步驟201中的裝載提取規(guī)則具體為裝載XPath通配式。
[0031]優(yōu)選地,所述步驟202中的裝載待提取XML文件具體為將XML文檔加載至內(nèi)存中。
[0032]優(yōu)選地,所述步驟204中的匹配XPath通配式的各個部分具體為,匹配時,依次遍歷每個部分,如果當前部分沒有%或者_符號,就形成新的XPath,否則利用當前形成的XPath表達式遍歷XML文檔,對于搜索到的節(jié)點,使用節(jié)點名替換通配符,然后將XPath表達式加入XPath字典;按照上述過程依次匹配各個部分直至遍歷匹配完成所有部分,從而XPath字典中存儲了所有提取完成的XPath表達式;將每個字典都分組存儲。
[0033]優(yōu)選地,所述步驟401,裝載XML文檔進一步包括,
[0034]在使用XML文檔之前,加載XML文檔至內(nèi)存中,形成XML的DOM對象。
[0035]優(yōu)選地,所述步驟403,修改XML文檔為多語言的XML文檔進一步包括,
[0036]根據(jù)語言環(huán)境,獲得XML文檔對應的XML資源。
[0037]優(yōu)選地,在運行時動態(tài)加載XML資源實現(xiàn)多語言。
[0038]使用本發(fā)明的有益效果在于:動態(tài)性,通過維護XML資源,可以動態(tài)地更改產(chǎn)品界面展示;快速性,結(jié)合自身的XPath提取基礎裝置,可以很快的生成所有XML文檔的資源文件;易部署,該資源文件的部署也很簡單,只需要放到正確的目錄下即可;增量式,無需更改原有任何的XML文檔,只是添加對應的資源即可;易維護。
[0039]上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,并可依照說明書的內(nèi)容予以實施,以下以本發(fā)明的較佳實施例并配合附圖詳細說明如后?!緦@綀D】

【附圖說明】
[0040]下面根據(jù)附圖和實施例對本發(fā)明作進一步詳細說明。
[0041]圖1示出了根據(jù)本發(fā)明的一個實施例的提取多語言資源的流程圖;
[0042]圖2示出了根據(jù)本發(fā)明的一個實施例的XPath表達式提取多語言資源流程圖;
[0043]圖3示出了根據(jù)本發(fā)明的一個實施例的資源文件部署示意圖;
[0044]圖4示出了根據(jù)本發(fā)明的一個實施例的多語言資源應用流程圖。
【具體實施方式】
[0045]為更進一步闡述本發(fā)明為達成預定發(fā)明目的所采取的技術手段及功效,以下結(jié)合附圖及較佳實施例,對依據(jù)本發(fā)明提出的基于XPath動態(tài)支持XML多語言的方法其【具體實施方式】、特征及其功效,詳細說明如后。在下述說明中,不同的“一實施例”或“實施例”指的不一定是同一實施例。此外,一或多個實施例中的特定特征、結(jié)構(gòu)、或特點可由任何合適形式組合。
[0046]本發(fā)明的基本思想是利用XML資源中的XPath表達式定位節(jié)點元素,然后將該資源中的value屬性值替換XPath指定的XML節(jié)點值,實現(xiàn)多語言切換的效果。
[0047]根據(jù)本發(fā)明的一個【具體實施方式】,提供了一種多語言資源提取方法,通過解析XPath表達式的通配式并結(jié)合待提取的XML文件,抽取出XPath表達式和XML文件中現(xiàn)有的元素值,該值即為默認值。借助該多語言資源提取方法用于自動提取并部署XML資源條目,從而實現(xiàn)快速提取XPath的技術效果。
[0048]根據(jù)本發(fā)明的一個【具體實施方式】,以書店作為實例進行說明。假設某書店包含有三本書,分別為《哈利波特》、《盡顯廚藝宴客菜》和《XML入門》。如果以XML文檔的形式描述這三本書的詳細信息,則應當不僅包括名稱信息,還應當進一步包含分類、作者、出版年份以及價格等信息。XML文檔中每個成分都是一個節(jié)點,整個文檔是一個文檔節(jié)點,每個XML標簽是一個元素節(jié)點,包含在元素中的文本為文本節(jié)點,每一個XML屬性為屬性節(jié)點。如果以XML文檔的方式描述書店信息,可知該XML文檔中應至少包含了如下節(jié)點:
[0049]書店(Bookstore)節(jié)點:整個XML文檔的文檔節(jié)點;
[0050]書籍(Book)節(jié)點:即書籍元素節(jié)點;每個書籍元素節(jié)點,都代表一本書,在該【具體實施方式】中一共包含三個Book兀素節(jié)點,代表了三本書的信息;
[0051]分類(Category)節(jié)點:即書籍分類的屬性節(jié)點,該節(jié)點的文本代表了分類的文本節(jié)點;
[0052]名稱(Title)節(jié)點:代表書籍名稱的元素節(jié)點,該節(jié)點的文本代表了名稱的文本節(jié)點;
[0053]作者(Author)節(jié)點:代表書籍作者的元素節(jié)點,該節(jié)點的文本代表了作者的文本節(jié)點;
[0054]年份(Year)節(jié)點:代表書籍出版年份的元素節(jié)點,該節(jié)點的文本代表了出版年份的文本節(jié)點;
[0055]價格(Price)節(jié)點:代表書籍價格的元素節(jié)點,該節(jié)點的文本代表了價格的文本節(jié)點。
[0056]節(jié)點之間具體的結(jié)構(gòu)示例如下:
【權(quán)利要求】
1.一種基于XPath動態(tài)支持XML多語言的方法,其特征在于: 步驟101,提取多語言資源,并判斷提取多語言資源是否成功;如果步驟101的判斷結(jié)果為未提取成功,則結(jié)束所有流程;如果步驟101的判斷結(jié)果為提取成功,則執(zhí)行步驟102 ; 步驟102,部署多語言資源; 步驟103,應用多語言資源; 結(jié)束。
2.一種如權(quán)利要求1所述的方法,其特征在于: 步驟101中的提取多語言資源進一步包括, 步驟201,裝載提取規(guī)則; 步驟202,裝載待提取XML文件; 步驟203,以/為分隔XPath通配式,并匹配XML節(jié)點;如果匹配成功,將XPath表達式各個部分分別進行存儲,供后續(xù)204步驟使用;如果匹配失敗,則結(jié)束當前提取流程; 步驟204,匹配XPath通配式的各個部分; 在步驟203中,通配式由/符號分割成多個部分,并進行匹配;如果匹配未完成,則返回至步驟203 ;如果匹配完成,則進行步驟205 ; 步驟205,形成XPath表達式并存儲。
3.—種如權(quán)利要求1或2所述的方法,其特征在于: 步驟102中的部署多語言資源進一步包括,將多語言資源部署至數(shù)據(jù)庫中、文件中甚至.resx文件中的一處或多處,并使得不同語言的不同資源能夠唯一定位。
4.一種如權(quán)利要求3所述的方法,其特征在于: 步驟103中的應用提取多語言資源進一步包括, 步驟401,裝載XML文檔; 步驟402,查看是否有相關XML資源;如果判斷結(jié)果為沒有相關的XML資源,則結(jié)束當前的所有流程,結(jié)束;如果判斷結(jié)果是有相關的XML資源,則繼續(xù)執(zhí)行步驟403 ; 步驟403,修改XML文檔為多語言的XML文檔;遍歷步驟402中得到的XML資源項集合,遍歷所有得到的資源項集合,并將XPath表達式指定的XML節(jié)點值替換為XML資源中的多語言資源值。
5.—種如權(quán)利要求4所述的方法,其特征在于: 所述步驟201中的裝載提取規(guī)則具體為裝載XPath通配式。
6.—種如權(quán)利要求5所述的方法,其特征在于: 所述步驟202中的裝載待提取XML文件具體為將XML文檔加載至內(nèi)存中。
7.—種如權(quán)利要求6所述的方法,其特征在于: 所述步驟204中的匹配XPath通配式的各個部分具體為,匹配時,依次遍歷每個部分,如果當前部分沒有%或者_符號,就形成新的XPath,否則利用當前形成的XPath表達式遍歷XML文檔,對于搜索到的節(jié)點,使用節(jié)點名替換通配符,然后將XPath表達式加入XPath字典;按照上述過程依次匹配各個部分直至遍歷匹配完成所有部分,從而XPath字典中存儲了所有提取完成的XPath 表達式;將每個字典都分組存儲。
8.—種如權(quán)利要求7所述的方法,其特征在于:所述步驟401,裝載XML文檔進一步包括,在使用XML文檔之前,加載XML文檔至內(nèi)存中,形成XML的DOM對象。
9.一種如權(quán)利要求8所述的方法,其特征在于:所述步驟403,修改XML文檔為多語言的XML文檔進一步包括,根據(jù)語言環(huán)境,獲得XML文檔對應的XML資源。
10.一種如權(quán)利要求9所述的方法,其特征在于:在運行時動態(tài)加載XML資源實現(xiàn)多語言。`
【文檔編號】G06F17/30GK103617297SQ201310701432
【公開日】2014年3月5日 申請日期:2013年12月18日 優(yōu)先權(quán)日:2013年12月18日
【發(fā)明者】劉艷飛, 黃純 申請人:用友軟件股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
皋兰县| 大理市| 桃源县| 于都县| 江油市| 丰原市| 扬州市| 遂宁市| 会昌县| 黄骅市| 通河县| 墨竹工卡县| 凤阳县| 寿阳县| 大庆市| 时尚| 保山市| 萍乡市| 鄯善县| 乐东| 靖远县| 青川县| 那坡县| 吴堡县| 沙河市| 安徽省| 衡南县| 武隆县| 南充市| 皋兰县| 灌南县| 鄯善县| 古丈县| 额尔古纳市| 佳木斯市| 海南省| 岑巩县| 毕节市| 治县。| 铅山县| 浙江省|