2009-05-08 65 views
5

我正在寻找一种方法来将XML文件的内容直接加载到一个Javascript变量中。说我有以下目录结构:如何使用Javascript加载XML文件内容?

/index.html 
/loader.js 
/file.xml 

index.html,有<body>标签,其内容应与XML文件的内容所取代。因此,如果XML文件包含:

<element> 
    <item>Item One</item> 
    <item>Item Two</item> 
</element> 

然后动态负载之后,HTML是:

... 
<body> 
<element> 
... 
</element> 
</body> 
... 

我的问题是,我可以在loader.js使用什么功能直接加载内容制作成变量?我使用了XmlHttpRequests和ActiveX XMLDOM解析器,但都只是给我一个结构数据模型,然后我必须通过排序来找到我的元素。我不需要解析任何东西,我只想获取所有文件内容。

注意:仅限HTML/Javascript,没有服务器端代码。

+0

这可以用普通的JavaScript做combesome,你使用任何框架吗? (之前有人说“使用jQuery”...) – roryf 2009-05-08 14:35:48

回答

4

我想我可能已经想通了。以下似乎工作得很好:

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; 
} 
+0

你可能想考虑异步运行这个。同步AJAX请求可以锁定浏览器的用户界面,让用户感觉他们的浏览器已挂起。 – 2009-05-10 05:31:15

+0

这将从客户端运行,但不在服务器上运行,所以我们并不太在意性能。双击桌面上的HTML文件。 – 2009-05-11 12:44:00

2

也许你可以阅读XmlHttpRequests的responseText属性以在解析之前使用纯文本?

相关问题