Cep a cidade ficheiro XML / estado look-up?
Pergunta
Tentando encontrar um arquivo XML que eu posso usar no lugar de uma tabela de banco de dados look-up até que tenhamos o nosso Web Hosting transferidas para o DB direita.
Alguém pode me referir a um arquivo XML com elementos cujos filhos têm Zipcodes, estados e cidades? Por exemplo:.
<zip code="98117">
<state>WA</state>
<city>Seattle</state>
</zip>
ou
<entry>
<zip>98117</zip>
<state>WA</state>
<city>Seattle</city>
</entry>
Eu vou estar usando LINQ em C # para consultar esses dados.
Solução
Confira este, que fornece diversos livres diferentes.
Outras dicas
Há um banco de dados de código postal livre localizada em:
Eu acredito que é um arquivo CSV, mas você pode convertê-lo em um arquivo XML com bastante facilidade.
Aqui está o código para fazer o preenchimento automático city.state baseado em um código postal entrou.
<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");
});
//]]>
Aqui está a API - http://www.zipcodeapi.com/Examples#example1 .
Você pode solicitar o conteúdo em XML via Para obter os dados de volta diretamente em XML você pode usar XML no formato no pedido.
responderá com
<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>
docs API são em https://www.zipcodeapi.com/API