XML 导入 html 无法从 url 导入

XML import into html doesnt work from url

本文关键字:导入 url html XML      更新时间:2023-09-26

我想在表中显示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);
//...

在 JS Fiddle 上查看此演示。