从HTML导入到HTML的XML不起作用

时间:2013-09-30 19:48:54

标签: javascript xml

我想在表格中显示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知之甚少,所以我无法理解。

1 个答案:

答案 0 :(得分: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);
//...

请参阅a running demo of this on JS Fiddle