Code postal vers un fichier XML de recherche de ville / état?
Question
Essayer de trouver un fichier XML que je peux utiliser à la place d'une table de base de données de recherche jusqu'à ce que notre hébergement Web soit commuté sur la bonne base de données.
Quelqu'un peut-il me référer à un fichier XML avec des éléments dont les enfants ont des codes postaux, des états et des villes? Exemple:
<zip code="98117">
<state>WA</state>
<city>Seattle</state>
</zip>
Ou
<entry>
<zip>98117</zip>
<state>WA</state>
<city>Seattle</city>
</entry>
J'utiliserai LINQ en C # pour interroger ces données.
La solution
Découvrez celui-ci, il propose plusieurs logiciels gratuits.
Autres conseils
Il existe une base de données de codes postaux gratuite située à l'adresse suivante:
Je pense que c'est un fichier .CSV, mais vous pouvez le convertir facilement en un fichier XML.
Voici le code pour effectuer le remplissage automatique de city.state en fonction du code postal saisi.
<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");
});
//]] >
Voici l'API - http://www.zipcodeapi.com/Examples#example1 .
Vous pouvez demander le contenu au format XML via: Pour récupérer les données directement au format XML, vous pouvez utiliser .XML au format de la demande.
répondra avec
<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>
Les documents Api se trouvent à l'adresse https://www.zipcodeapi.com/API
.