Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Θέλω να παίρνω δεδομένα από ένα xml αρχείο και να τα βάζω σε μεταβλητές της Javascript. Αυτό λογικά γίνετε αλλά όσο και αν έχω ψάξει δεν βρίσκω τίποτα... Μπορεί κάποιος να μου δώσει ένα κώδικα με ένα παράδειγμα ή έστω ένα Link;

Δημοσ.

+1 στον Crawl_From_Death για το link για το πως να διαβάσεις xml με jquery.

 

Τη λύση αυτή όμως μπορείς να την ακολουθήσεις μόνο αν ζητάς το xml από το ίδιο site που είναι και η HTML σελίδα σου.

Αυτό σημάινει ότι θα πρέπει να κάνεις export το xml από το http://api.own3d.tv/...p?live_id=24939 σε xml file.

 

Αν έχω καταλάβει καλά, θες τα δεδομένα σου να τα διαβάζεις κατευθείαν από το api.own3d.tv

 

Δυστυχώς δε θα παίξει λόγω του Same Origin Policy

Με λίγα λόγια το site σου είναι hosted στον serverA και εσύ δοκιμάζεις να ζητήσεις δεδομένα από τον api.own3d.tv μέσω javascript πράγμα που απαγορεύεται λόγω security.

 

Δύο λύσεις που μου έρχονται στο μυαλό για να παίξει είναι:

 

Server side ajax proxy

Μια server side σελίδα (μπορεί να είναι σε .Net, PHP ή κάποια άλλη server side technology) που θα είναι hosted στο ίδιο site με την HTML σελίδα σου.

Θα παίρνει τα XML δεδομένα από το http://api.own3d.tv/...p?live_id=24939 και θα τα επιστρέφει κατά προτίμηση σε JSON, καθώς το parsing JSON είναι έτοιμο σε javascript, κάνοντας όποιους άλλους μετασχηματισμούς κρίνεις απαραίτητο.

 

Με χρήση JSONP

Σε περίπτωση που o server από τον οποίο ζητάς τα δεδομένα δεν υποστηρίζει JSONP μπορείς να χρησιμοποιήσεις ένα 3rd party service όπως το YQL

 

Βλέποντας την ηλικία σου στο προφίλ σου και για να γλυτώσεις λίγο χρόνο έγραψα το παρακάτω παράδειγμα για το διάβασμα του XML.Χρησιμοποίησα την JSONP λύση.

>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My Page</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://yandex.st/json2/2011-10-19/json2.min.js"></script> <!--Just for the JSON.stringify function-->
<script type="text/javascript">
 $(document).ready(function () {
	 $('#btn').bind('click', function () {
		 var query = "select * from xml where url='http://api.own3d.tv/liveCheck.php?live_id=24939'";
		 $.getJSON('http://query.yahooapis.com/v1/public/yql?q='+encodeURIComponent(query)+'&format=json&callback=?', null, function (result) {
			 var liveEvent = result.query.results.own3dReply.liveEvent;//Get live event from YQL response
			 //You have your data in liveEvent.Do whatever checks you want here.

			 var stringData = JSON.stringify(liveEvent);//I just convert the object to string.
			 $('#result').empty().append(stringData);//and append it to the result div
		 });
	 });
 });
</script>
</head>
<body>
<input id="btn" type="button" value="Get Data" />
<div id="result"></div>
</body>
</html>

  • Like 3

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...