Почтовый индекс в XML-файле поиска города/штата?

StackOverflow https://stackoverflow.com/questions/431616

  •  08-07-2019
  •  | 
  •  

Вопрос

Пытаюсь найти XML-файл, который я могу использовать вместо таблицы поиска в базе данных, пока мы не переключим наш веб-хостинг на нужную БД.

Может ли кто-нибудь направить меня на XML-файл с элементами, дочерние элементы которых имеют почтовые индексы, штаты и города?Например.:

<zip code="98117">
    <state>WA</state>
    <city>Seattle</state>
</zip>

Или

<entry>
    <zip>98117</zip>
    <state>WA</state>
    <city>Seattle</city>
</entry>

Я буду использовать LINQ на C# для запроса этих данных.

Это было полезно?

Решение

Посмотрите этот, он предоставляет несколько разных бесплатных.

https://stackoverflow.com/questions/24471/zip-code-database

Другие советы

Бесплатная база данных почтовых индексов находится по адресу:

http://www.populardata.com

Я считаю, что это файл .CSV, но вы можете довольно легко преобразовать его в файл XML.

Вот код для автозаполнения city.state на основе введенного почтового индекса.

<script type="text/javascript">//<![CDATA[
$(function() {
    // IMPORTANT: Fill in your client key
    var clientKey = "js-9qZHzu2Flc59Eq5rx10JdKERovBlJp3TQ3ApyC4TOa3tA8U7aVRnFwf41RpLgtE7";

    var cache = {};
    var container = $("#example1");
    var errorDiv = container.find("div.text-error");

    /** Handle successful response */
    function handleResp(data)
    {
        // Check for error
        if (data.error_msg)
            errorDiv.text(data.error_msg);
        else if ("city" in data)
        {
            // Set city and state
            container.find("input[name='city']").val(data.city);
            container.find("input[name='state']").val(data.state);
        }
    }

    // Set up event handlers
    container.find("input[name='zipcode']").on("keyup change", function() {
        // Get zip code
        var zipcode = $(this).val().substring(0, 5);
        if (zipcode.length == 5 && /^[0-9]+$/.test(zipcode))
        {
            // Clear error
            errorDiv.empty();

            // Check cache
            if (zipcode in cache)
            {
                handleResp(cache[zipcode]);
            }
            else
            {
                // Build url
                var url = "http://www.zipcodeapi.com/rest/"+clientKey+"/info.json/" + zipcode + "/radians";

                // Make AJAX request
                $.ajax({
                    "url": url,
                    "dataType": "json"
                }).done(function(data) {
                    handleResp(data);

                    // Store in cache
                    cache[zipcode] = data;
                }).fail(function(data) {
                    if (data.responseText && (json = $.parseJSON(data.responseText)))
                    {
                        // Store in cache
                        cache[zipcode] = json;

                        // Check for error
                        if (json.error_msg)
                            errorDiv.text(json.error_msg);
                    }
                    else
                        errorDiv.text('Request failed.');
                });
            }
        }
    }).trigger("change");
});

//]]>

Вот API - http://www.zipcodeapi.com/Examples#example1.

Вы можете запросить содержимое в XML через. Чтобы получить данные обратно непосредственно в XML, вы можете использовать .xml в формате запроса.

https://www.zipcodeapi.com/rest/RbdapNcxbjoCvfCv4N5iwB3L4beZg017bfiB2u9eOxQkMtQQgV9NxdyCoNCENDMZ/info.xml/90210/grades

Ответим с

<response>
   <zip_code>90210</zip_code>
   <lat>34.100501</lat>
   <lng>-118.414908</lng>
   <city>Beverly Hills</city>
   <state>CA</state>
   <timezone>
   <timezone_identifier>America/Los_Angeles</timezone_identifier>
   <timezone_abbr>PDT</timezone_abbr>
      <utc_offset_sec>-25200</utc_offset_sec>
      <is_dst>T</is_dst>
   </timezone>
   <acceptable_city_names/>
</response>

Документация API находится по адресу https://www.zipcodeapi.com/API

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top