我有一個大的XML,我需要處理JS內部。是否有更好的解決方案,然後複製/粘貼(從xml文件到js文件)並引用近1000行xml文件中的每一行?如何在Javascript中對大型XML字符串進行硬編碼?
是否有可能將該xml文件「嵌入」爲flash中的資源?
我有一個大的XML,我需要處理JS內部。是否有更好的解決方案,然後複製/粘貼(從xml文件到js文件)並引用近1000行xml文件中的每一行?如何在Javascript中對大型XML字符串進行硬編碼?
是否有可能將該xml文件「嵌入」爲flash中的資源?
通常的解決辦法很簡單,就是讓XML文件外,並使用它取一個XMLHttpRequest:
function fetchXMLFile(url, callback) {
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
var xml = httpRequest.responseXML;
if (callback) callback(xml);
}
}
};
httpRequest.open('GET', url);
httpRequest.send();
}
fetchFile('myFile.xml', function(xml){
// use the xml
});
如果你真的想嵌入代碼的數據,你必須在正則表達式玩你最喜歡的編輯器或構建一個小工具來執行嵌入,但很少將它視爲將大數據與源代碼合併的最佳實踐。這兩個部分通常有不同的生命週期。
您可以嘗試以十六進制或json表示形式編寫它。
例如,「此字符串」將變爲「\ x74 \ x68 \ x69 \ x73 \ x20 \ x73 \ x74 \ x72 \ x69 \ x6e \ x67」。 有大量的在線工具可以爲你做到這一點。例如this one,會做這項工作,但不會包含「\ x」,所以javascript會將其解釋爲普通字符串。要追加\ x和有正確的十六進制格式的任何JavaScript控制檯執行的飛行這個功能:(當然有產生的十六進制數字替換引用文本)
"7468697320737472696e67".replace(/([A-F\d]{2})/gi, "\\x$1"); // \x74...\x67
然後就這個字符串複製到你的源和它應該工作。如果你想分析XML,看看this - 另一個在線工具來將您的XML轉換爲JSON,有效的JavaScript對象;分配時直接使用它。
是的,你可以通過AJAX請求它,但請記住,你不會嵌入它,你將需要執行第二個http請求來獲取XML。如果你不打算通過網絡發佈你的js/xml文件,這可能不適合...但是可能並非如此:) – Claudio