我想将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

07-24 09:44
查看更多