如何使用Javascript加载XML文件内容?
我正在寻找一种将XML文件的内容直接加载到Javascript变量中的方法。假设我有以下目录结构:如何使用Javascript加载XML文件内容?,javascript,html,xml,xmlhttprequest,Javascript,Html,Xml,Xmlhttprequest,我正在寻找一种将XML文件的内容直接加载到Javascript变量中的方法。假设我有以下目录结构: /index.html /loader.js /file.xml 在index.html中,有一个标记,其内容应替换为XML文件的内容。因此,如果XML文件包含: <element> <item>Item One</item> <item>Item Two</item> </element> 项目一 项目
/index.html
/loader.js
/file.xml
在index.html
中,有一个
标记,其内容应替换为XML文件的内容。因此,如果XML文件包含:
<element>
<item>Item One</item>
<item>Item Two</item>
</element>
项目一
项目二
动态加载后,HTML将为:
...
<body>
<element>
...
</element>
</body>
...
。。。
...
...
我的问题是,我可以在loader.js
中使用什么函数将内容直接加载到变量中?我使用过XmlHttpRequests和ActiveX XMLDOM解析器,但都只是给了我一个结构数据模型,然后我必须对其进行排序以找到我的元素。我不需要解析任何东西,我只想获得所有的文件内容
注意:仅HTML/Javascript,没有服务器端代码。我想我可能已经找到了答案。以下几点似乎效果不错:
function loadFileToElement(filename, elementId)
{
var xmlHTTP = new XMLHttpRequest();
try
{
xmlHTTP.open("GET", filename, false);
xmlHTTP.send(null);
}
catch (e) {
window.alert("Unable to load the requested file.");
return;
}
document.getElementById(elementId).innerHTML=xmlHTTP.responseText;
}
也许您可以阅读XmlHttpRequests的responseText属性,以便在解析之前获得纯文本?这可能与纯旧JavaScript有关,您是否使用了任何框架?(在某人说“使用jQuery”…)之前,你可能想考虑异步运行这个。同步AJAX请求可以锁定浏览器的UI,给用户留下浏览器挂起的印象。但这将从客户端运行,而不是在服务器上运行,因此我们不太担心性能。图片双击桌面上的HTML文件。当我这样做时,会出现CORS异常