Πρόβλημα με φόρτωση xml σε html

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
dj_kostas_pro
Δημοσιεύσεις: 210
Εγγραφή: 10 Οκτ 2007 16:54
Τοποθεσία: Πιερία

Πρόβλημα με φόρτωση xml σε html

Δημοσίευση από dj_kostas_pro » 05 Ιουν 2011 12:07

Παιδιά βρήκα τον παρακάτω κώδικα από το w3schools.com. Ο κώδικας αυτός φορτώνει ένα xml σε html.

Κώδικας: Επιλογή όλων

<script type="text/javascript">
if &#40;window.XMLHttpRequest&#41;
  &#123;// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest&#40;&#41;;
  &#125;
else
  &#123;// code for IE6, IE5
  xmlhttp=new ActiveXObject&#40;"Microsoft.XMLHTTP"&#41;;
  &#125;
xmlhttp.open&#40;"GET","http&#58;//www.w3schools.com/XML/cd_catalog.xml",false&#41;;
xmlhttp.send&#40;&#41;;
xmlDoc=xmlhttp.responseXML; 

document.write&#40;"<table border='1'>"&#41;;
var x=xmlDoc.getElementsByTagName&#40;"CD"&#41;;
for &#40;i=0;i<x.length;i++&#41;
  &#123; 
  document.write&#40;"<tr><td>"&#41;;
  document.write&#40;x&#91;i&#93;.getElementsByTagName&#40;"ARTIST"&#41;&#91;0&#93;.childNodes&#91;0&#93;.nodeValue&#41;;
  document.write&#40;"</td><td>"&#41;;
  document.write&#40;x&#91;i&#93;.getElementsByTagName&#40;"TITLE"&#41;&#91;0&#93;.childNodes&#91;0&#93;.nodeValue&#41;;
  document.write&#40;"</td></tr>"&#41;;
  &#125;
document.write&#40;"</table>"&#41;;
</script>
Το πρόβλημα μου είναι ότι το δικό μου xml αρχείο είναι διαφορετικό. Δείτε παρακάτω πως είναι και αν μπορείτε να με βοηθήσετε για το πως να εισάγω το xml στην σελίδα μου.

Κώδικας: Επιλογή όλων

<Schedule System="Jazler">
 <Event status="happening" startTime="10&#58;54&#58;56" eventType="song">
    <Announcement Display="Now On Air&#58;"/>
  <Song title="KRYPsE ME">
   <Artist name="XATZHGIANNHS">
    <Media runTime="183.837"/>
    <Expire Time="10&#58;57&#58;59"/>
   </Artist>
  </Song>

 </Event>
</Schedule>

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με φόρτωση xml σε html

Δημοσίευση από fafos » 05 Ιουν 2011 18:25

tha sou proteina na pairneis ta stoixeia me php giati tha theleis kai alles dynatothtes sthn synexeia opos automath allagh otan mpainei neo tragoudi h kai posos xronos apomenei mexri na teleiosei to tragoudi.. kati pou kanoun me ton SAM opos edo: http://www.ellinikosfm.com/new/

an thes kati tetoio na sou doso odhgies..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
dj_kostas_pro
Δημοσιεύσεις: 210
Εγγραφή: 10 Οκτ 2007 16:54
Τοποθεσία: Πιερία

Πρόβλημα με φόρτωση xml σε html

Δημοσίευση από dj_kostas_pro » 05 Ιουν 2011 19:34

fafos αν δεν σου κανει κοπο να μου πεις πως να κανω σαν αυτο που μου εδειξες
Όλοι ζούμε κάτω από τον ίδιο ουρανό, αλλά δεν έχουμε όλοι τον ίδιο ορίζοντα.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με φόρτωση xml σε html

Δημοσίευση από fafos » 05 Ιουν 2011 20:02

Loipon..

to jazzler den dinei tis dynatothtes tou sam gia na emfaniseis tosa stoixeia... opote pame na emfanisoume auta pou dinei to xml pou mas edoses..

1. ypothetoume oti to xml sozetai se ena arxeio me titlo: jazler.xml

2. dhmiourgoume ena php arxeio (p.x. me titlo jaz.php) sto opoio analyoume to xml kai exagoume ta dedomena tou... epishs sto idio arxeio trexoume kapoies alles routines gia na paroume stoixeia pou tha xreiastoume sthn synexeia (diavase ta comments):

Κώδικας: Επιλογή όλων

<?
$xml = simplexml_load_file&#40;'jazler.xml'&#41;;//to xml arxeio mas

$status =  $xml->Event&#91;status&#93;;//typonei to status
$startime =  $xml->Event&#91;startTime&#93;;//typonei tthn ora pou arxizei to tragoudi
$eventype= $xml->Event&#91;eventType&#93;;//typonei to eventType
$title = $xml->Event->Song&#91;title&#93;;//typonei ton titlo tou tragoudiou
$artist= $xml->Event->Song->Artist&#91;name&#93;;//typonei to onoma tou kallitexnh
$duration = $xml->Event->Song->Artist->Media&#91;runTime&#93;;//typonei thn diarkeia tou tragoudiou se deuterolepta
$expiretime= $xml->Event->Song->Artist->Expire&#91;Time&#93;;//typonei thn ora pou teleionei to tragoudi

//vriskoume posa deuterolepta apomenoun gia na teleiosei to tragoudi
$curtime = time&#40;&#41;;//h ora se timestamp gia to tora
$starttime = date&#40;'Y-m-d'&#41;.' '.$startime;
$starttime = strtotime&#40;$starttime&#41;;//h ora pou arxise to tragoudi se timestamp
$secsRemain = &#40;ceil&#40;$duration&#41;-&#40;$curtime-$starttime&#41;&#41;;//posa deutera apomenoun

//metatrepoume ta deuterolepta ths diarkeias tou tragoudiou se ores-lepta-deutera
function sec2hms &#40;$sec, $padHours = false&#41; 
  &#123;
    $hms = "";
    $hours = intval&#40;intval&#40;$sec&#41; / 3600&#41;; 
if&#40;$hours > 0&#41; &#123;
    $hms .= &#40;$padHours&#41; 
          ? str_pad&#40;$hours, 2, "0", STR_PAD_LEFT&#41;. '&#58;'
          &#58; $hours. '&#58;';
&#125;
    $minutes = intval&#40;&#40;$sec / 60&#41; % 60&#41;; 
    $hms .= str_pad&#40;$minutes, 2, "0", STR_PAD_LEFT&#41;. '&#58;';
    $seconds = intval&#40;$sec % 60&#41;; 
    $hms .= str_pad&#40;$seconds, 2, "0", STR_PAD_LEFT&#41;;
    return $hms;
  &#125;
$duration = sec2hms &#40;$duration&#41;;

//ta kanoume json array
 		$Aj_array = $status . '|' . $startime . '|' . $eventype . '|' . $title . '|' . $artist .'|' . $duration .'|' . $expiretime .'|'. $secsRemain;
 		
//typonoume thn json
 		echo $Aj_array

?>

3. Ston epomeno kodika vlepeis pos emfanizoume ta apotelesmata sthn selida pou theloume.. xrhsimopoioume ena ajax-javascript arxeio gia na paroume ta apotelesmata apo to jaz.php, na dhmiourghsoume ton countcounter gia na mas deixnei posh ora apomenei gia na teleiosei to tragoudi kai fysika na mas ananeonei ta apotelesmata otan arxizei ena neo tragoudi:

Κώδικας: Επιλογή όλων

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<script language="JavaScript">

	var http = getXMLHTTPRequest&#40;&#41;;
	var counter;

      function getXMLHTTPRequest&#40;&#41; &#123;
      try &#123;
      req = new XMLHttpRequest&#40;&#41;;
      &#125; catch&#40;err1&#41; &#123;
        try &#123;
        req = new ActiveXObject&#40;"Msxml2.XMLHTTP"&#41;;
        &#125; catch &#40;err2&#41; &#123;
          try &#123;
          req = new ActiveXObject&#40;"Microsoft.XMLHTTP"&#41;;
          &#125; catch &#40;err3&#41; &#123;
            req = false;
          &#125;
        &#125;
      &#125;
      return req;
      &#125;



      function getServerText&#40;&#41; &#123;
        var myurl = 'jaz.php'; // to path pros to php arxeio
        myRand = parseInt&#40;Math.random&#40;&#41;*999999999999999&#41;;
        var modurl = myurl+"?rand="+myRand;
        http.open&#40;"GET", modurl, true&#41;;
        http.onreadystatechange = useHttpResponse;
        http.send&#40;null&#41;;
      &#125;

      function useHttpResponse&#40;&#41; &#123;
               if &#40;http.readyState == 4&#41; &#123;
          if&#40;http.status == 200&#41; &#123;
 
          	var aj_results = http.responseText.split&#40;"|"&#41;;
          	var aj_status = aj_results&#91;0&#93;;
          	var aj_startime = aj_results&#91;1&#93;;
          	var aj_eventype = aj_results&#91;2&#93;;
          	var aj_title = aj_results&#91;3&#93;;			
          	var aj_artist = aj_results&#91;4&#93;;
          	var aj_duration = aj_results&#91;5&#93;;
          	var aj_expiretime = aj_results&#91;6&#93;;	
          	var aj_secsremaining = aj_results&#91;7&#93;;	
			
          	// update  divs - vazei ta apotelesmata sto analogo div
          	document.getElementById&#40;'status'&#41;.innerHTML =  aj_status;
          	document.getElementById&#40;'startime'&#41;.innerHTML =  aj_startime;
          	document.getElementById&#40;'eventype'&#41;.innerHTML =  aj_eventype;			
          	document.getElementById&#40;'title'&#41;.innerHTML =  aj_title;
          	document.getElementById&#40;'artist'&#41;.innerHTML =  aj_artist;
          	document.getElementById&#40;'duration'&#41;.innerHTML =  aj_duration;
          	document.getElementById&#40;'expiretime'&#41;.innerHTML =  aj_expiretime;	
	
            countDownInterval = aj_secsremaining - 0;
            countDownTime = countDownInterval + 1;
            countDown&#40;&#41;
          &#125;
        &#125; else &#123;
        &#125;
      &#125;




    function countDown&#40;&#41; &#123;
      countDownTime--;
      if &#40;countDownTime == 0&#41; &#123;
        countDownTime = countDownInterval;
        getServerText&#40;&#41;
      &#125;
      else if &#40;countDownTime < 0&#41;
        countDownTime = 30;
      if &#40;document.all&#41;
        document.all.countDownText.innerText = secsToMins&#40;countDownTime&#41;;
      else if &#40;document.getElementById&#41;
        document.getElementById&#40;"countDownText"&#41;.innerHTML = secsToMins&#40;countDownTime&#41;;
      stopCountDown&#40;&#41;;
      counter = setTimeout&#40;"countDown&#40;&#41;", 1000&#41;;
    &#125;




function secsToMins&#40;theValue&#41;

&#123;

    var theHours = Math.floor&#40;theValue / &#40;60 * 60&#41;&#41;;

   

    var divisor_for_minutes = theValue % &#40;60 * 60&#41;;

    var theMin = Math.floor&#40;divisor_for_minutes / 60&#41;;
 
    var divisor_for_seconds = divisor_for_minutes % 60;

    var theSec = Math.ceil&#40;divisor_for_seconds&#41;;
      if &#40;theSec < 10&#41;
        theSec = "0" + theSec;
	if &#40;theHours < 1&#41; &#123;	
      return&#40;theMin + "&#58;" + theSec&#41;;
   &#125; else &#123;
       return&#40;theHours + "&#58;" + theMin + "&#58;" + theSec&#41;;  
   &#125;



&#125;	
	
	
	function stopCountDown&#40;&#41;
		&#123;
		clearTimeout&#40;counter&#41;
		&#125;
window.onload=getServerText;



</script>

<!--vaxo ligo style se kapoia apo ta divs.. allazeis me ta dika sou gousta-->
<style>
#title &#123;
  font-size &#58; 14px;
  font-family &#58; Verdana;
  font-weight &#58; bold;
  color &#58; #006200;

&#125;

#artist &#123;
  font-size &#58; 14px;
  font-family &#58; Verdana;
  font-weight &#58; bold;
  color &#58; #990000;

&#125;

#countDownText &#123;
  font-size &#58; 14px;
  font-family &#58; Verdana;
  font-weight &#58; normal;
  color &#58; #005cb9;
  font-style &#58; italic;
&#125; 
</style>


</head>
<body>
<div id="status" ><!--emfanizei to status--></div>
<div id="startime" ><!--emfanizei thn ora enarxhs tou tragoudiou--></div>

<div id="eventype" ><!--emfanizei to event type--></div>
<div id="title" ><!--emfanizei ton titlo tou tragoudiou--></div>
<div id="artist" ><!--emfanizei ton kallitexnh--></div>
<div id="duration" ><!--emfanizei thn diarkeia tou tragoudiou--></div>
<div id="expiretime" ><!--emfanizei thn ora pou teleionei to tragoudi--></div>
<div id="countDownText"><!--emfanizei ena metrhth gia to posh ora apomenei gia na teleiosei to tragoudi--></div>

edo sou emfanizo ola ta stoixeia se kapoia divs.. opoia den xreiazesai prepei na svhseis to div kai thn entolh sto javascript pou vazei to apotelesma.. p.x. de theleis na deixeis to status.. svhneis auta:

document.getElementById('status').innerHTML = aj_status;

kai

<div id="status""><!--emfanizei to status--></div>


to idio kaneis kai se oti allo den thes na emfanizei...
h emfanish klp einai thema aplhs html kai css kai thn prosarmozeis sta gousta sou..

to teliko apotelesma tha einai kapos etsi:

Κώδικας: Επιλογή όλων

happening
10&#58;54&#58;56
song
KRYPsE ME
XATZHGIANNHS
03&#58;03
10&#58;57&#58;59
0&#58;27
Shmeiosh: Gia na doulepsei kala to script tha prepei to roloi tou pc sou na einai apolyta enarmonismeno me to roloi tou server!
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
dj_kostas_pro
Δημοσιεύσεις: 210
Εγγραφή: 10 Οκτ 2007 16:54
Τοποθεσία: Πιερία

Πρόβλημα με φόρτωση xml σε html

Δημοσίευση από dj_kostas_pro » 05 Ιουν 2011 20:11

ΣΕ ΥΠΕΡΕΥΧΑΡΙΣΤΩ ΝΑ ΣΕ ΚΑΛΑ.

OTI KAI NA ΠΩ ΘΑ ΕΙΝΑΙ ΛΙΓΟ ΣΕ ΕΥΧΑΡΙΣΤΩ ΞΑΝΑ :)
Όλοι ζούμε κάτω από τον ίδιο ουρανό, αλλά δεν έχουμε όλοι τον ίδιο ορίζοντα.

Άβαταρ μέλους
dj_kostas_pro
Δημοσιεύσεις: 210
Εγγραφή: 10 Οκτ 2007 16:54
Τοποθεσία: Πιερία

Πρόβλημα με φόρτωση xml σε html

Δημοσίευση από dj_kostas_pro » 11 Ιουν 2011 15:30

Να ρωτήσω και κάτι ακόμα.
Έκανα εχθές ανανέωση του Jazler με τον ποιο καινούργιο και το xml αρχείo είναι κάπως διαφορετικό δεν μου εμφανίζει πλέων την διάρκεια του τραγουδιού.

Το xml

Κώδικας: Επιλογή όλων

<?xml version="1.0" encoding="utf-8"?>
<Schedule System="Jazler">
 <Event status="happening" startTime="14&#58;18&#58;21" eventType="song">
    <Announcement Display=""/>
  <Song title="Sexy girl &#40;Malibu Breeze Remix&#41;">
   <Artist name="Pearl + Last Vegas">
   </Artist>
    <Jazler ID="127"/>
    <PlayLister ID=""/>
    <Media runTime="00&#58;03&#58;43"/>

    <Expire Time="14&#58;22&#58;03"/>
  </Song>
 </Event>
</Schedule>
Έτσι και εγώ από τα λίγα που ξέρω πήγα στο αρχείο php και άλλαξα το παρακάτω με κόκκινο αλλά δεν μου εμφάνισε τίποτα.

Κώδικας: Επιλογή όλων

<?
$xml = simplexml_load_file&#40;'jazler.xml'&#41;;//to xml arxeio mas

$status =  $xml->Event&#91;status&#93;;//typonei to status
$startime =  $xml->Event&#91;startTime&#93;;//typonei tthn ora pou arxizei to tragoudi
$eventype= $xml->Event&#91;eventType&#93;;//typonei to eventType
$title = $xml->Event->Song&#91;title&#93;;//typonei ton titlo tou tragoudiou
$artist= $xml->Event->Song->Artist&#91;name&#93;;//typonei to onoma tou kallitexnh
&#91;color=red&#93;$duration = $xml->Event->Song->Media&#91;runTime&#93;;/&#91;/color&#93;/typonei thn diarkeia tou tragoudiou se deuterolepta
$expiretime= $xml->Event->Song->Artist->Expire&#91;Time&#93;;//typonei thn ora pou teleionei to tragoudi
Μήπως χρειάζεται να αλλάξω και τίποτα άλλο από το php αρχείο?

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με φόρτωση xml σε html

Δημοσίευση από fafos » 11 Ιουν 2011 16:35

Κώδικας: Επιλογή όλων

<?
$xml = simplexml_load_file&#40;'jazzler.xml'&#41;;//to xml arxeio mas

$status =  $xml->Event&#91;status&#93;;//typonei to status
$startime =  $xml->Event&#91;startTime&#93;;//typonei tthn ora pou arxizei to tragoudi
$eventype= $xml->Event&#91;eventType&#93;;//typonei to eventType
$title = $xml->Event->Song&#91;title&#93;;//typonei ton titlo tou tragoudiou
$artist= $xml->Event->Song->Artist&#91;name&#93;;//typonei to onoma tou kallitexnh
$duration = $xml->Event->Song->Media&#91;runTime&#93;;//typonei thn diarkeia tou tragoudiou se deuterolepta
$duration = explode&#40;'&#58;',$duration&#41;;
$duration = &#40;$duration&#91;0&#93; * 60* 60&#41; + &#40;$duration&#91;1&#93; * 60&#41; + $duration&#91;2&#93;;//metatroph se deuterolepta
$expiretime= $xml->Event->Song->Expire&#91;Time&#93;;//typonei thn ora pou teleionei to tragoudi

//vriskoume posa deuterolepta apomenoun gia na teleiosei to tragoudi
$curtime = time&#40;&#41;;//h ora se timestamp gia to tora
$starttime = date&#40;'Y-m-d'&#41;.' '.$startime;
$starttime = strtotime&#40;$starttime&#41;;//h ora pou arxise to tragoudi se timestamp
$secsRemain = &#40;ceil&#40;$duration&#41;-&#40;$curtime-$starttime&#41;&#41;;//posa deutera apomenoun

$duration = $xml->Event->Song->Media&#91;runTime&#93;;

//ta kanoume json array
 		$Aj_array = $status . '|' . $startime . '|' . $eventype . '|' . $title . '|' . $artist .'|' . $duration .'|' . $expiretime .'|'. $secsRemain;
 		
//typonoume thn json
 		echo $Aj_array

?>
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

LeuQ
Δημοσιεύσεις: 3
Εγγραφή: 22 Μαρ 2011 12:39

Πρόβλημα με φόρτωση xml σε html

Δημοσίευση από LeuQ » 06 Αύγ 2011 03:42

Καλησπερα..μια ερωτηση

πως μπορω να κανω αυτα

Απο :
song
Helena Paparizou
18
0:26

Σε :


Song : Helena Paparizou
Artist : 18
Auto Refresh at : 0:30

Εψαξα και δεν βρηκα κατι για να μπορω να τα πειραξω

Άβαταρ μέλους
dj_kostas_pro
Δημοσιεύσεις: 210
Εγγραφή: 10 Οκτ 2007 16:54
Τοποθεσία: Πιερία

Πρόβλημα με φόρτωση xml σε html

Δημοσίευση από dj_kostas_pro » 06 Αύγ 2011 10:56

Αν θες δες το δικό μού
http://www.mousikopanorama.gr/LiveRadio/
Όλοι ζούμε κάτω από τον ίδιο ουρανό, αλλά δεν έχουμε όλοι τον ίδιο ορίζοντα.

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες