javascript中的XML,javascriptXML

來源:互聯網
上載者:User

javascript中的XML,javascriptXML

IE下建立DOM並載入XML

var xmldoc = new ActiveXObject("Microsoft.XMLDOM");xmldoc.load(url);  //載入XML檔案xmldoc.loadXML(“<root><son/></root>”);//載入XML字串xmldoc.documentElement //擷取根項目,僅IE支援

非IE下建立DOM並載入XML

var xmldoc =document.implementation.createDocument("","",null);xmldoc.async =true;    //非同步載入xmldoc.load(url);

第一個參數指定檔案的命名空間URL,第二個參數用於指定檔案元素的標籤名,第三個標籤用於指定文件類型對象,一般為null

var xmldoc =document.implementation.createDocument("http://www.x-do.org","root",null);

這行代碼建立了表示<rootxmlns="http://www.x-do.org"/>的XML DOM

 

W3C標準的XML DOM不支援loadXML()方法。要將XML字串解析為DOM,必須使用DOMParser對象,使用其parseFromString方法傳入XML字串表現形式:

      var xmlParser = new DOMParser();      var xmlDom =xmlParser.parseFromString("<root />","text/xml");  //該方法返回一個XMLDOM對象      //第二個參數text/xml也可以是application/xml,兩者都用來解析XML      //還可以是application/xhtml+xml,用來解析XHTML,只能用這三種MIME

與直接解析XML字串相對應的擷取XML字串的方法,IE中XML DOM對象具有唯讀xml屬性,而W3C標準則沒有相對應的屬性,但是提供了可以用於同樣的目的的XMLSerializer對象:

 

    var serializer= new XMLSerializer();    var xmlStr =serializer.serializeToString(xmlDom,"text/xml");    //xmlDom為一個XML DOM節點對象    //而text/xml也可為application/xml
 

可以把一個函數綁定到XML文檔對象的onload事件(對於W3C相容的瀏覽器)或onreadystatechange事件(對於WindowsInternet Explorer)。然後,綁定的函數可以用來處理XML文檔的內容。

相容地建立XML的DOM對象

if (typeof document.implementation.createDocument != "undefined") {      xmldoc =document.implementation.createDocument("", "", null);      xmldoc.onload = displayData;} else if(window.ActiveXObject) {      xmldoc = new ActiveXObject("Microsoft.XMLDOM");      xmldoc.onreadystatechange = function () {             if (docObj.readyState == 4)             displayData();      };}xmldoc.load(url);function displayData(){   }
 

load()方法只可以載入與包含JavaScript的頁面儲存於同一伺服器上的檔案,也就是說,不可以通過其他人的伺服器載入XML檔案

以同步模式載入檔案時,JavaScript代碼會等待檔案完全載入後才繼續執行代碼;而以非同步模式載入時,不會等待,可以使用事件處理函數來判斷檔案是否完全載入了。預設情況下,檔案按照非同步模式載入。要進行同步載入,只需設定async特性為false


聯繫我們

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