1

我想将 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不太了解,所以我无法弄清楚。

4

1 回答 1

0

来自的响应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);
//...

在 JS Fiddle 上查看运行演示

于 2013-09-30T22:23:03.840 回答