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