首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

跨瀏覽器載入 XML:放棄 load(),改用 AJAX 取得 responseXML

     編輯:程式設計綜合問答

早期 IE 專屬的 XMLDocument.load()、Firefox/Opera 的 document.load() 已被廢棄,**現代瀏覽器通用做法是使用 AJAX (Fetch/XHR) 取得 XML 並直接讀取 responseXML**。

標準作法

// 使用 Fetch API (現代)
async function loadXML(url) {
    const resp = await fetch(url);
    const xmlDoc = await resp.text().then(str => new DOMParser().parseFromString(str, "application/xml"));
    return xmlDoc;
}

// 或使用 XMLHttpRequest (相容舊瀏覽器)
function loadXML_XHR(url, callback) {
    const xhr = new XMLHttpRequest();
    xhr.open('GET', url);
    xhr.responseType = 'document'; // 直接得到 Document 物件
    xhr.onload = () => callback(xhr.responseXML);
    xhr.send();
}

優勢

  • 統一非同步介面,支援所有主流瀏覽器 (Chrome, Firefox, Safari, Edge)。
  • 可攔截錯誤碼、設定標頭、處理 CORS。
  • responseXML 直接提供可用 querySelector/XPath 查詢的 DOM 樹。

棄用 load(),擁抱 Fetch/XHR + DOMParser,才是跨平台 XML 處理的正途。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved