2016-03-30 3 views
1

Bevor ich meine Frage beginne: Das letzte Mal, als ich diese Frage gestellt habe, haben einige von Ihnen hilfreiche Links zum Parsen des XML geschrieben. Aber meine Frage ist, wie man die XML-Informationen an erster Stelle in eine String-Variable bringt. Es ist kein Duplikat dieser Links.Kann ich XML von einer Google API in Javascript als String speichern?

Hoffentlich macht meine Frage Sinn. Aber ich versuche, den XML-Code zu speichern, den ich von der Geocode-API von Google (https://developers.google.com/maps/documentation/geocoding/intro) erhalte, damit ich Adressen automatisch formatieren kann, die Leute in einige Felder eingeben.

Im Wesentlichen bin ich auf der Suche nach einem Javascript-Äquivalent von =WEBSERVICE([URL]) in MS Excel.

Die Idee besteht darin, die Adressfelder, die Menschen eingeben, abzurufen, in den Geokodierungs-URL einzufügen, das XML als Zeichenfolge zu speichern (dies ist der Schritt, mit dem ich Probleme habe) und dann die Felder auf die Ergebnisse festzulegen von der API.

+0

Speichern Sie es wo? Sie wissen, dass Javascript Fähigkeiten für Datenpersistenz begrenzt hat, nicht wahr? – lucas

+0

In einer String-Variablen. Und das wusste ich nicht. Ich habe nicht viel Erfahrung mit Javascript. – Mike

+0

Ja, um Daten lokal in Sitzungen zu speichern, müssen Sie sie in Cookies oder lokalen Speicher speichern. Um Daten zu erhalten und zwischen Benutzern zugänglich zu machen, benötigen Sie eine Datenbank. Am Ende wird es wahrscheinlich am Ende sein, dass Sie neu erstellen, was Google standardmäßig bereitstellt. Soweit ich das verstehe. Vielleicht bin ich verwirrt über deine Ziele. In jedem Fall würde ich vorschlagen, JSON-Ausgabe (siehe Dokumente) anfordern, wie das zumindest sparen Sie die Umgehung der Analyse von XML – lucas

Antwort

1

Ein einfaches Beispiel jQuery:

var response = $.get('https://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY'); 
var text = response.responseText; 

$.get kehrt ein jqXHR Objekt, das responseText aussetzt. Sie können https://api.jquery.com/jquery.ajax/ für weitere Details überprüfen.

Hinweis: Das obige Beispiel gibt einen Fehler zurück (da wir keinen API-Schlüssel bereitstellen), aber das Antwortformat ist dasselbe.

Um ein XMLDocument tatsächlich in eine Zeichenfolge zu konvertieren, müssten Sie einen Serializer verwenden (siehe Convert xml to string with jQuery).

+0

Ich habe Ihren Code verwendet und 'sensor = false' anstelle des API-Schlüssels verwendet (ich habe jedoch einen API-Schlüssel). Als ich mit "alert (typeof text)" darauf folgte, stand im Warntext "undefined". Soll das passieren? – Mike

+0

Hier ist mein Code für den Fall, dass Sie sich wundern (die URL funktioniert gut, wenn sie in eine URL eingegeben wurde): 'var response = $ .get ('https://maps.googleapis.com/maps/api/geocode/xml?address = 1600 + Amphitheater + Parkway, + Berg + Sicht, + CA & Sensor = falsch '); ' ' var text = response.responseText; ' ' alert (Text); ' – Mike

Verwandte Themen