Analyse des données XML d’un site Web distant

Je voudrais parsingr les données XML d’un site Web distant http://services.faa.gov/airport/status/IAD?format=xml … Mais je n’ai pas pu parsingr les données XML et je ne reçois qu’une erreur . Mais j’ai pu parsingr les données JSON du même site Web distant http://services.faa.gov/airport/status/IAD?format=json . Le code que j’ai utilisé pour parsingr les données XML est:

   Aviation   var result; function xmlparser() { $.ajax({ type: "GET", url: "http://services.faa.gov/airport/status/IAD?format=xml", dataType: "xml", success: function (xml) { result = xml.city; document.myform.result1.value = result; }, error: function (xml) { alert(xml.status + ' ' + xml.statusText); } }); }    

J’obtenais seulement l’erreur “o Erreur” dans la zone d’alerte, car j’ai imprimé le message d’erreur. N’importe qui s’il vous plaît helpout pour parsingr les données XML à partir du site Web distant. Note : j’ai aussi ‘Ville’ au lieu de ‘Ville’ mais ça ne marche pas … Merci d’avance …

Je ne crois pas que cela fonctionnera, car le service renvoie toujours xml. jsonp attend un littéral d’object en tant qu’argument à transmettre au rappel. Je crois que si vous exécutez ce programme localement, vous réaliserez qu’aucune donnée ne peut être consommée pour votre succès. Essaye ça

 $.ajax({ type: "GET", url: "http://services.faa.gov/airport/status/IAD?format=json", dataType: "jsonp", success: function (data) { document.myform.result1.value = data.city; }, error: function (jqXHR, textStatus, errorThrown) { alert(errorThrown); } }); 

Voici l’exemple de création d’un proxy avec asp.net mvc 3. Je viens de créer une action qui renvoie un ContentResult qui mappe sur une chaîne, mais je définis le type de contenu sous la forme text / xml. Cela crée simplement une requête Web au service et lit le stream dans une chaîne à renvoyer dans la réponse.

 [HttpGet] public ContentResult XmlExample() { HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://services.faa.gov/airport/status/IAD?format=xml"); ssortingng xml = null; using (WebResponse response = request.GetResponse()) { using (var xmlStream = new StreamReader(response.GetResponseStream())) { xml = xmlStream.ReadToEnd(); } } return Content(xml, "text/xml"); } 

Votre fonction xmlParser ressemblera à ceci:

  

jQuery ajax convertit les données en utilisant $ .parseXML en interne, ce qui supprime l’obligation de nous appeler même dans le bloc de succès. À ce stade, vous disposez d’un object jQuery que vous pouvez utiliser à l’aide de ses fonctions DOM par défaut pour rechercher le nœud de ville.

Assurez-vous de remplacer XmlExample par l’URL à laquelle il correspond en fonction de votre contrôleur.

La solution est assez simple (mentionné dans le commentaire de Pekka )

1. IAD_proxy.php votre serveur, ajoutez un fichier IAD_proxy.php

2.Introduisez le code suivant à l’intérieur

 header("Content-type: text/xml; charset=utf-8"); echo file_get_contents('http://services.faa.gov/airport/status/IAD?format=xml'); 

IAD_proxy.php l’ url de votre demande Ajax en IAD_proxy.php .

Si vous utilisez un autre langage côté serveur, essayez de mettre en œuvre la même idée.

Édition: Lisez à propos de l’ parsing de XML avec jQuery , voici ce que j’ai essayé et cela fonctionne.

Javscript:

 $.ajax({ type: "GET", url: "IAD_proxy.php", dataType: "xml", success: function (xml) { alert($(xml).find('City').text()); }, error: function (xml) { alert(xml.status + ' ' + xml.statusText); } }); 

Ici, je l’ai essayé avec document.write($(xml).find('City').text());

entrez la description de l'image ici