我想将XML数据显示到表中。脚本是:
<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', 'http://imenicka.cz/xml/menicko.php?hash=fccab45d85b39726611ab433f66263a7&restaurace=430&datum=2013-10-02', true);
。但是,如果我从文件夹中获取数据,则可以。
xhr.open('GET', 'menicka.xml', true);
我对javascript不太了解,所以无法弄清楚。
最佳答案
来自http://imenicka.cz/xml/menicko.php?hash=fccab45d85b39726611ab433f66263a7&restaurace=430&datum=2013-10-02
的响应的类型为text/html
,而不是application/xml
。
这意味着未将其视为XML且responseXML
为空的响应。
您可以通过在此处添加警报来进行测试:
//...
alert(this.responseXML);
populateTable(this.responseXML);
//...
请参见a running demo of this on JS Fiddle。