将国家/地区名称更改为缩写

时间:2012-05-28 11:31:25

标签: javascript jquery

我正在检索包含许多其他内容的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

1 个答案:

答案 0 :(得分: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-array,它或多或少是一个数据库。请考虑输入一个名为countries.js或其他的单独的js文件,并在第一个javascript文件中包含if。(/ p>

现在您可以简单地从countryCode转换为真实姓名,反之亦然,即

countryCodes['NL']

将导致'荷兰'和

inverseCountryCodes['France']

将导致'FR'。

更好的选择是确定一个国家最稳定的代表是什么,我认为这将是一个国家代码,因为名称在不同语言中具有不同的值。这样你就可以考虑将countryCode作为xml返回(服务器端)。

Anyroad,祝你好运!

注意:

我刚发现:http://www.geonames.org/export/ws-overview.html

这是一个很好的webrequests列表,你可以做,以获得各种各样的地理信息。 countryInfo似乎与你想要的完全相反,但它仍然可以帮助你。例如,通过这种方式,您可以获得有关德国的信息。通过让服务器使用代码而不是名称进行响应,这可能正是您所需要的!

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

如果您将使用此功能,请不要忘记创建自己的api.geoname.org帐户,而不是使用demo-username;)