我正在检索包含许多其他内容的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 :(得分: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;)