JS zum parsen von XML


#1

Hi,

ich würde gerne einen Wert einer externen (googlemapsAPI) XML Datei in meine Webseite einbinden. Mit simpleXML geht das via PHP, doch dazu benötigt man bplaced pro. Da meine Seite aber eigentlich nur für mich (und vielleicht ein paar Freunde - das wird sich zeigen) ist, lohnt sich das nicht wirklich.

Gibt es eine Möglichkeit das z.B. über JS zu lösen? Konkret geht es mir um den Wert “text” = 1 Stunde 23 Minuten.

Vielen Dank!

XML Ausgabe.

{
   "destination_addresses" : [ "Startadresse, Deutschland" ],
   "origin_addresses" : [ "Zieladresse, Deutschland" ],
   "rows" : [
      {
         "elements" : [
            {
               "distance" : {
                  "text" : "65,7 Meile/n",
                  "value" : 105790
               },
               "duration" : {
                  "text" : "1 Stunde, 23 Minuten",
                  "value" : 4974
               },
               "status" : "OK"
            }
         ]
      }
   ],
   "status" : "OK"
}

#2

Das was du gepostet hast ist JSON. Wenn die API JSONP ausliefert (oder irgendsowas unterstützt), kannst du das verwenden. Sonst sieht’s vermutlich eher schlecht aus.

Mfg :wink:


#3

Ja, richtig. Ich kann das auch in XML haben. Sorry. :frowning:

<DistanceMatrixResponse>
<status>OK</status>
<origin_address>startadresse</origin_address>
<destination_address>zieladresse</destination_address>
<row>
<element>
<status>OK</status>
<duration>
<value>6182</value>
<text>1 Stunde, 43 Minuten</text>
</duration>
<distance>
<value>139420</value>
<text>139 km</text>
</distance>
<duration_in_traffic>
<value>6727</value>
<text>1 Stunde, 52 Minuten</text>
</duration_in_traffic>
</element>
</row>
</DistanceMatrixResponse>

#4

Das Problem ist eben, dass du wegen der Same-Origin-Policy nicht so einfach rankommst …


#5

Möglich ist es, wenn auch etwas aufwändiger.
https://www.w3.org/TR/cors/

und kleines Tutorial
https://www.html5rocks.com/en/tutorials/cors/

lg


#6

Danke!

Das ist mir doch ein wenig zu kompliziert.

Ich will ja eigentlich nur die Google Distance Matrix auswerten. Die ist ja explizit dafür gemacht, dass ich den Inhalt verwenden kann. (Ganz abgesehen, dass das jetzt keine Seite für eine riesige Masse wird, sondern eher für mich und vielleicht noch einen Kumpel.)

So richtig verstehen tue ich nicht, warum ich nicht Daten von einer anderen Quelle nutzen darf. Ich mein, genau dafür ist doch so eine API da?


#7

Weil du dafuer bplaced pro benoetigst…
Hast du doch in deinem eingangspost bereits bemerkt.

cURL gibts nicht mit free, deshalb xhr/cors oder keine externen APIs.
Wenn dir das arbeiten mit rohen xhr requests schwierigkeiten bereitet, nimm jquery’s $.ajax(), das kann xhr/cors.


#8

Ok. Verstehe.
BplacedPro. Naja. Das ist für meine Zwecke dann doch ein wenig übertrieben.
Ich brauche ja eigentlich nur einen Wert. Im Moment scheint mir der Aufwand mich da reinzufriemeln noch zu groß. Ich hatte gehofft es gäbe eine Lösung, die nur ein paar Zeilen mehr bedeutet.
Danke aber in jedem Fall für die Antworten!!!