javascript 操作XML2

來源:互聯網
上載者:User
 上一篇介紹了XML的結構以及節點之間的關係
這一篇介紹瀏覽器內建的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");
例子解釋:
  1. 上面代碼的第一個行建立一個空的微軟 XML 文檔對象。
  2. 第二行關閉非同步載入,這樣確保在文檔完全載入之前解析器不會繼續指令碼的執行。
  3. 第三行告知解析器載入名為 "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");
例子解釋:
  1. 上面代碼的第一個行建立一個空的 XML 文檔對象。
  2. 第二行關閉非同步載入,這樣確保在文檔完全載入之前解析器不會繼續指令碼的執行。
  3. 第三行告知解析器載入名為 "note.xml" 的 XML 文檔。

下面的 JavaScript 片段把字串 txt 載入解析器:

var parser=new DOMParser();var xmlDoc=parser.parseFromString(txt,"text/xml");
例子解釋:
  1. 上面代碼的第一個行建立一個空的微軟 XML 文檔對象。
  2. 第二行告知解析器載入名為 txt 的字串。

注釋:DOMParser對象的parseFromString () 方法用於載入字串(文本),load() 用於負載檔案。

三、跨域訪問

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

假如你打算在自己的網頁上使用上面的例子,則必須把 XML 檔案放到自己的伺服器上。否則,xmlDoc.load() 將產生錯誤 "Access is denied"。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.