所有現代浏覽器都内建了用于讀取和操作 XML 的 XML 解析器。
解析器把 XML 讀入記憶體,并把它轉換為可被 JavaScript 通路的 XML DOM 對象。
微軟的 XML 解析器與其他浏覽器中的解析器是有差異的。微軟的解析器支援對 XML 檔案和 XML 字元串(文本)的加載,而其他浏覽器使用單獨的解析器。不過,所有的解析器都含有周遊 XML 樹、通路、插入及删除節點的函數。
在本教程中,我們将為您講解如何建立可在 IE 及其他浏覽器中運作的腳本。
微軟的 XML 解析器内建于 Internet Explorer 5 及更高版本中。
下面的 JavaScript 片段把 XML 文檔 ("books.xml") 載入了解析器:
第一行建立空的微軟 XML 文檔對象
第二行關閉異步加載,這樣可確定在文檔完整加載之前,解析器不會繼續執行腳本
第三行告知解析器加載名為 "books.xml" 的文檔
下面的 JavaScript 片段把名為 txt 的字元串載入解析器中:
注釋:loadXML() 方法用于加載字元串(文本),而 load() 用于加載檔案。
第一行建立空的 XML 文檔對象
第一行建立一個空的 XML 文檔對象
第二行告知解析器加載名為 txt 的字元串
注釋:Internet Explorer 使用 loadXML() 方法來解析 XML 字元串,而其他浏覽器使用 DOMParser 對象。
下面的例子把 XML 文檔 ("books.xml") 載入 XML 解析器:
TIY
出于安全方面的原因,現代的浏覽器不允許跨域的通路。
這意味着,網頁以及它試圖加載的 XML 檔案,都必須位于相同的伺服器上。
W3Course 的執行個體所打開的 XML 檔案位于 W3Course 的域上。
假如你打算在自己的網頁上使用上面的例子,則必須把 XML 檔案放到自己的伺服器上。否則,xmlDoc.load() 将産生錯誤 "Access is denied"。
下面的代碼加載并解析了一個 XML 字元串: