XML DOM 解析器
本節(jié)將為你介紹 XML 解析器,XML 解析器在大部分瀏覽器中內(nèi)建。
大多數(shù)瀏覽器都內(nèi)建了供讀取和操作 XML 的 XML 解析器。
解析器把 XML 轉換為 JavaScript 可存取的對象(XML DOM)。
XML 解析器
XML DOM 包含了遍歷 XML 樹,訪問、插入及刪除節(jié)點的方法(函數(shù))。
然而,在訪問和操作 XML 文檔之前,它必須加載到 XML DOM 對象。
XML 解析器讀取 XML,并把它轉換為 XML DOM 對象,這樣才可以使用 JavaScript 訪問它。
大多數(shù)瀏覽器有一個內(nèi)建的 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;
嘗試一下 ? 代碼解釋:
- 創(chuàng)建一個 XMLHTTP 對象
- 打開 XMLHTTP 對象
- 發(fā)送一個 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 對象。
跨域訪問
出于安全原因,現(xiàn)代的瀏覽器不允許跨域訪問。
這意味著,網(wǎng)頁以及 XML 文件,它必須位于同一臺服務器上嘗試加載。
W3CSchool 上的實例中所有打開的 XML 文件都是位于 W3CSchool 域上的。
如果您想要在您的網(wǎng)頁上使用上面的實例,您加載的 XML 文件必須位于您自己的服務器上。
相關教程
JavaScript教程
更多建議: