在Chrome中加载本地XML文件

我必须使用
HTML5 / CSS3 /
JavaScript创建一个项目,并使用XML作为数据提供者.

要求声明它必须与Internet Explorer,Firefox,Safari和Chrome兼容.

我正在开发Firefox,所以工作得很好.

Safari也像一种款待一样,幸运的是它在新的IE9中也很完美.

我只是遇到了让它在Chrome中运行的问题.
由于Chrome似乎支持许多新的HTML5 / CSS3功能,因此在该浏览器中运行它也不应该太多.
唯一的问题是它拒绝加载XML文件,因为从一开始就需要这样做,所以整个事情都不会加载.

在做了一些研究后,我发现帖子说明Chrome不允许您加载本地XML文件.
它应该在不使用Apache或任何东西的情况下脱机工作,那么还有什么方法可以让它工作吗?

我根据所使用的浏览器加载XML的代码片段:

if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
    // INTERNET EXPLORER
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        try {
            xmlDoc.async="true";
            xmlDoc.load("exercise1.xml");
        } catch(ex) {
            alert("exception");
            alert(ex.message);
        }
    }else if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
    // MOZILLA FIREFOX
        // load xml file
        xmlDoc=loadXMLDoc("exercise1.xml");
    }else if (/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
        // GOOGLE CHROME
        // load xml file
        // ????????
    }else if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
        // OPERA
        alert("Opera is not supported as of now");
    }else if (browser.toLowerCase().indexOf('safari') > 0){
    // APPLE SAFARI
        // load xml file
        xmlDoc=loadXMLDoc("exercise1.xml");
    } else {
    // OTHER BROWSERS
        // load xml file
        xmlDoc=loadXMLDoc("exercise1.xml");
    }

Firefox和Safari使用外部JavaScript加载XML.
我不认为在这里发布代码是非常必要的,因为它在这些浏览器中运行得非常好.

也许我忽略了一些简单的东西,但我已经做了一些谷歌搜索,并尝试了一些在Stackoverflow上找到的代码,我仍然无法让它工作..

最佳答案 您可以使用XMLHttpRequest在Chrome中加载XML文件,如下所示:

(在Chrome 12.0.742.112上测试).

    function readxml()
    {
        xmlHttp = new window.XMLHttpRequest();
        xmlHttp.open("GET","test.xml",false);
        xmlHttp.send(null);
        xmlDoc = xmlHttp.responseXML.documentElement;
    }

这是Chrome开发工具中看到的xmlDoc.

确保在服务器上有一个有效的XML文档.

<?xml version='1.0'?>

必须在XML的第一行,并检查标记之前没有空格.

点赞