C#从国家名称获取A2 Iso国家/地区代码

时间:2017-01-22 15:13:57

标签: c# asp.net asp.net-mvc iso country-codes

我正在尝试通过将完整的国家/地区名称作为输入来获取A2 ISO国家/地区代码。

例如:

 var html = new WebClient().DownloadString("mysite.com");
            HtmlDocument htmlDoc = new HtmlDocument();
            htmlDoc.LoadHtml(html);

            var result = htmlDoc.DocumentNode.SelectNodes("//span[@class='mem_loc']").ElementAt(0).InnerText;

这会给我一个例外:

Bosnia & Herzegovina

United States

Croatia

输入如下:

Bosnia & Herzegovina

输出的国家/地区代码为:BA

美国:美国

克罗地亚:HR

等等......

在C#中执行此操作的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

最后这样做了:

 var html = new WebClient().DownloadString("mysite.com");
            HtmlDocument htmlDoc = new HtmlDocument();
            htmlDoc.LoadHtml(html);

            var result = htmlDoc.DocumentNode.SelectNodes("//span[@class='mem_loc']").ElementAt(0).InnerText;
            var regionFullNames = CultureInfo
                       .GetCultures(CultureTypes.SpecificCultures)
                       .Select(x => new RegionInfo(x.LCID))
                       ;
            var twoLetterName = Regex.Replace(regionFullNames.FirstOrDefault(
                                   region => region.EnglishName.Contains(result)
                                ).ToString(), "{.*?}","");

提供输入:美国

输出:美国