2012-05-28 117 views
4

我正在檢索一些包含其他國家/地區的XML數據,並且我想將國家/地區名稱鏈接到其縮寫以便將它們與famfamfam標誌進行匹配。將國家名稱更改爲縮寫

請參見下面的例子:

$('Result',xml).each(function(i) { 
     var $this = $(this), 
     user = $this.attr("Username"), 
     country = $this.attr("Country"), 

所以可變國將取國名,所以我怎麼能動態改變247個潛力的國家,以它的縮寫。

下面是縮寫和完整的國名的列表的一部分:

>FI FINLAND 
>FJ FIJI 
>FK FALKLAND ISLANDS (MALVINAS) 
>FM MICRONESIA, FEDERATED STATES OF 
>FO FAROE ISLANDS 
>FR FRANCE 
>FX FRANCE, METROPOLITAN 
>GA GABON 
>GB UNITED KINGDOM 
>GE GEORGIA 
+0

哪裏是你的全縮寫列表? –

+0

你如何收到你的XML?你能夠改變XML中的輸出嗎? –

+0

「從哪裏獲取某些XML」?除了全名之外,XML的源代碼可以使用縮寫嗎? –

回答

4

你需要問自己一個問題的縮寫是否被莫名其妙地保存在你的XML響應。我認爲它沒有,在這種情況下,你需要在JavaScript中創建一個對象是這樣的:

var countryCodes = { 
    'NL' : 'Netherlands', 
    'FR' : 'France' 
    // and all the other countries 
} 
var inverseCountryCodes = {}; 
for(i in countryCodes) { 
    inverseCountryCodes[countryCodes[i]] = i; 
} 

注:這實際上意味着,你將有一個巨大的代碼創建countryCodes陣列,片,其或多或少是一個數據庫。請考慮放入一個單獨的js文件,名爲countries.js或其他內容,並且包含(如果是)第一個javascript文件。

現在,你可以簡單地從COUNTRYCODE的真實姓名和周圍的其他方法轉換,即

countryCodes['NL'] 

將導致「荷蘭」和

inverseCountryCodes['France'] 

將導致「FR」 。

更好的選擇是確定一個國家最穩定的代表是什麼,我認爲這將是一個國家代碼,因爲名稱在不同的語言中具有不同的值。這樣你可以考慮將countryCode作爲xml返回(服務器端)。

Anyroad,祝你好運!

注意:

我剛剛發現這一點:http://www.geonames.org/export/ws-overview.html

這是webrequests你可以做一個很好的清單,以獲取各種地理信息。國家信息似乎與你想要的完全相反,但它仍然可以幫助你。例如,這樣你就可以獲得有關德國的信息。通過讓服務器用代碼而不是名稱進行響應,這可能正是您所需要的!

http://api.geonames.org/countryInfoJSON?formatted=true&lang=it&country=DE&username=demo&style=full

如果你會使用這個,不要忘了讓自己api.geoname.org帳戶,而不是使用演示的用戶名;)

+0

謝謝赫伯特,驚人的多快,我得到了答案。我認爲這就是我正在尋找的。我會在今晚看更多,如果有效,我會檢查你的答案是否被接受。再次感謝! – Victor

+0

不客氣:) – Herbert

+0

工作得很好......謝謝!去了這個解決方案:var shortCountryCode = countryCodes [country]; – Victor