2013-09-30 2 views
1

XML 데이터를 테이블에 표시하려고합니다. 스크립트입니다 : 내가URL에서 XML 가져 오기가 HTML에서 작동하지 않습니다.

xhr.open('GET', 'http://imenicka.cz/xml/menicko.php?hash=fccab45d85b39726611ab433f66263a7&restaurace=430&datum=2013-10-02', true);에서 데이터를 가져 오려면

<script type="text/javascript"> 

    var xhr= window.XMLHttpRequest? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); 
    xhr.onreadystatechange= function() { 
     if (this.readyState===4 || this.status===200) 
      populateTable(this.responseXML); 
    }; 
    xhr.open('GET', 'http://imenicka.cz/xml/menicko.php?hash=fccab45d85b39726611ab433f66263a7&restaurace=430&datum=2013-10-02', true); 
    xhr.send(); 

    function populateTable(xml) { 
     var table= document.getElementById('cds'); 
     var cds= xml.getElementsByTagName('MENICKO'); 
     for (var i= 0; i<cds.length; i++) { 
      var row= table.insertRow(-1); 

      function getProperty(name) { 
       var el= cds[i].getElementsByTagName(name)[0]; 
       if (el.firstChild) 
        return el.firstChild.data; 
       return ''; // allow empty elements 
      } 
      function addCell(value) { 
       row.insertCell(-1).appendChild(document.createTextNode(value)); 
      } 

      addCell(getProperty('TEXT')); 
      addCell(getProperty('CENA')); 
     } 
    }; 

</script> 

그것은 작품을 나던.

하지만 폴더의 데이터를 가져 가면 그럴 겁니다.

xhr.open('GET', 'menicka.xml', true); 

는 내가 그것을 알아낼 할수 없어 있도록 자바 스크립트에 대한 것을 많이 알고하지는.

+0

... http://stackoverflow.com/questions/18986800/does-this-ajax-method-work-in-many-browsers-and-operating-systems/18988763# 18988763 – John

답변

0

http://imenicka.cz/xml/menicko.php?hash=fccab45d85b39726611ab433f66263a7&restaurace=430&datum=2013-10-02의 응답은 application/xml이 아닌 text/html입니다.

응답이 XML로 처리되지 않고 responseXML이 비어 있음을 의미합니다.

현재 경고를 추가하여 테스트 할 수 있습니다

//... 
alert(this.responseXML); 
populateTable(this.responseXML); 
//... 

a running demo of this on JS Fiddle를 참조하십시오.

여기에 내 대답을 참조하십시오
관련 문제