Latest web development tutorials

XML DOM 解析器

大多數瀏覽器都內建了供讀取和操作XML 的XML 解析器。

解析器把XML 轉換為JavaScript 可存取的對象(XML DOM)。


XML 解析器

XML DOM 包含了遍歷XML 樹,訪問、插入及刪除節點的方法(函數)。

然而,在訪問和操作XML 文檔之前,它必須加載到XML DOM 對象。

XML 解析器讀取XML,並把它轉換為XML DOM 對象,這樣才可以使用JavaScript 訪問它。

大多數瀏覽器有一個內建的XML 解析器。


加載XML 文檔

下面的JavaScript片段加載一個XML文檔(" books.xml "):

實例

if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else // IE 5/6
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET","books.xml",false);
xhttp.send();
xmlDoc=xhttp.responseXML;

嘗試一下»

代碼解釋:

  • 創建一個XMLHTTP 對象
  • 打開XMLHTTP 對象
  • 發送一個XML HTTP 請求到服務器
  • 設置響應為XML DOM 對象

加載XML 字符串

下面的代碼加載並解析一個XML 字符串:

實例

if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(text,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(text);
}

嘗試一下»

注意: Internet Explorer使用loadXML()方法來解析XML字符串,而其他瀏覽器使用DOMParser對象。


跨域訪問

出於安全原因,現代的瀏覽器不允許跨域訪問。

這意味著,網頁以及XML 文件,它必須位於同一台服務器上嘗試加載。

W3CSchool 上的實例中所有打開的XML 文件都是位於W3CSchool 域上的。

如果您想要在您的網頁上使用上面的實例,您加載的XML 文件必須位於您自己的服務器上。