2009-05-08 62 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屬性以在解析之前使用純文本?

相關問題