這一篇介紹瀏覽器內建的XML解析器以及JavaScript是如何加載XML的。 大多數瀏覽器都有讀取和操作 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"); 例子解釋:
下面的 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"); 例子解釋:
下面的 JavaScript 片段把字符串 txt 載入解析器: var parser=new DOMParser(); var xmlDoc=parser.parseFromString(txt,"text/xml"); 例子解釋:
註釋:DOMParser對象的parseFromString () 方法用於加載字符串(文本),load() 用於加載文件。 三、跨域訪問出於安全方面的原因,現代的瀏覽器不允許跨域的訪問。
假如你打算在自己的網頁上使用上面的例子,則必須把 XML 文件放到自己的服務器上。否則,xmlDoc.load() 將產生錯誤 "Access is denied"。 |
JavaScript操作XML(二)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.