Почтовый индекс в XML-файле поиска города/штата?
Вопрос
Пытаюсь найти 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# для запроса этих данных.
Решение
Посмотрите этот, он предоставляет несколько разных бесплатных.
Другие советы
Бесплатная база данных почтовых индексов находится по адресу:
Я считаю, что это файл .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 в формате запроса.
Ответим с
<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