js便簽筆記(8)——js載入XML字串或檔案

來源:互聯網
上載者:User

標籤:style   blog   class   code   java   tar   

1. 載入XML檔案

方法1:ajax方式。代碼如下:

var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");xhr.open("GET", "data.xml", false);xhr.send(null);var xmlDoc = xhr.responseXML;console.log(xmlDoc); 

(關於XMLHttpRequest對象的用法,請參加 http://www.w3school.com.cn/xmldom/dom_http.asp)

注意,代碼第二行的“false”,表示不用非同步。如果這裡改為“true”,那麼xmlDoc將得到null。因為js的非同步作業,不會等待檔案載入完,就直接執行下面的語句了。所以,我們這裡必須設定為“false”,表示必須等待檔案載入完,再執行以下操作,這樣才能得到正確的xmlDoc。

這種方式相容所有進階瀏覽器,建議採用這種方式載入。

 

方法2:IE的方式。代碼如下:

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async = "false";xmlDoc.load("note.xml");
console.log(xmlDoc); 

通過IE特有的ActiveXObject("Microsoft.XMLDOM")對象的load()方法負載檔案。

注意,這裡還是設定了非同步是false,原因和方法1的一樣。

 

方法3:Firefox的方式,代碼如下:

var xmlDoc = document.implementation.createDocument("", "", null);xmlDoc.async = "false";xmlDoc.load("note.xml");console.log(xmlDoc);

 

關於跨域載入:安全起見,現代瀏覽器不能跨域訪問,即只能載入本機上的xml檔案。

 

2. 載入XML字串

先看代碼:

 1       function LoadXmlText() { 2  3             //拼接XML字串 4             var txt = ‘‘; 5             txt = txt + "<note>"; 6             txt = txt + "<to>George</to>"; 7             txt = txt + "<from>John</from>"; 8             txt = txt + "<heading>Reminder</heading>"; 9             txt = txt + "<body>Don‘t forget the meeting!</body>";10             txt = txt + "</note>";11 12             13             if (window.DOMParser) {14                 //非IE瀏覽器15                 xmlDoc = (new DOMParser()).parseFromString(txt, "text/xml");16             } else {17                 //IE瀏覽器18                 xmlDoc = new ActiveXObject("Microsoft.XMLDOM");         19                 // 或者:xmlDoc = new ActiveXObject("MSXML2.DOMDocument");      20 21                 xmlDoc.async = "false";        //不啟用非同步,保證負載檔案成功之前不會進行下面操作22                 xmlDoc.loadXML(txt);23             }24 25             console.log(xmlDoc);26         }

如果瀏覽器支援window.DOMParser對象,則直接用它的parseFromString()方法載入xml字串。

IE瀏覽器不支援window.DOMParser,則用loadXML()載入。

代碼中注釋都寫的很親你清楚。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.