轉子別人空間:
大多數瀏覽器都有讀取和操作 XML 的內建 XML 解析器。
解析器(XML Parser)把 XML 轉換為 JavaScript 可訪問的對象。
解析器把 XML 載入記憶體,然後把它轉換為可通過 JavaScript 訪問的 XML DOM 對象。
微軟的 XML 解析器與其他瀏覽器中的解析器之間,存在一些差異。微軟的解析器支援 XML 檔案和 XML 字串(文本)的載入,而其他瀏覽器使用單獨的解析器。不過,所有的解析器都包含遍曆 XML 樹、訪問插入及刪除節點(元素)及其屬性的函數。
Note:當我們談及 XML 解析,我們常常會使用有關 XML 元素的術語:節點。
一、IE通過微軟的 XML 解析器來載入 XML
微軟的 XML 解析器內建於 Internet Explorer 5 以及更高的版本中。
下面的 JavaScript 片段把一個 XML 文檔載入解析器中:
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async="false";xmlDoc.load("note.xml");
例子解釋:
- 上面代碼的第一個行建立一個空的微軟 XML 文檔對象。
- 第二行關閉非同步載入,這樣確保在文檔完全載入之前解析器不會繼續指令碼的執行。
- 第三行告知解析器載入名為 "note.xml" 的 XML 文檔。
下面的 JavaScript 片段把字串 txt 載入解析器:
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async="false";xmlDoc.loadXML(txt);
注釋:loadXML() 方法用於載入字串(文本),load() 用於負載檔案。
二、Firefox 及其他瀏覽器中的 XML 解析器
下面的 JavaScript 片段把 XML 文檔 ("note.xml") 載入解析器:
var xmlDoc=document.implementation.createDocument("","",null);xmlDoc.async="false";xmlDoc.load("note.xml");
例子解釋:
- 上面代碼的第一個行建立一個空的 XML 文檔對象。
- 第二行關閉非同步載入,這樣確保在文檔完全載入之前解析器不會繼續指令碼的執行。
- 第三行告知解析器載入名為 "note.xml" 的 XML 文檔。
下面的 JavaScript 片段把字串 txt 載入解析器:
var parser=new DOMParser();var xmlDoc=parser.parseFromString(txt,"text/xml");
例子解釋:
- 上面代碼的第一個行建立一個空的微軟 XML 文檔對象。
- 第二行告知解析器載入名為 txt 的字串。
注釋:DOMParser對象的parseFromString () 方法用於載入字串(文本),load() 用於負載檔案。
三、跨域訪問
出於安全方面的原因,現代的瀏覽器不允許跨域的訪問。
假如你打算在自己的網頁上使用上面的例子,則必須把 XML 檔案放到自己的伺服器上。否則,xmlDoc.load() 將產生錯誤 "Access is denied"。
另外,jquery也可以直接存取Xml,$.get, $.ajax等