火狐下javascript操作XML

字號:


    上一個文章寫了IE操作XML,這次繼續(xù)火狐下javascript操作XML,火狐提供的XMLDom比IE更加標(biāo)準(zhǔn),火狐下操作XMLDom實際上就是它的javascript實現(xiàn),火狐實現(xiàn)了Dom level2,而微軟的IE僅支持DOm level1.
    1創(chuàng)建Dom,Dom標(biāo)準(zhǔn)指出,document.implementation對象有createDocument()方法.
    var forasp_cnxmlDom = document.mplementation.createDocument("","",null);
    該方法的三個參數(shù)分別表示:文檔命名空間的URL,文檔元素標(biāo)簽名 ,和一個文檔類型對象(總是null,因為火狐滅幼對文檔類型對象的支持)
    舉例
    var forasp_cnxmlDom = document.mplementation.createDocument("http://www.ynpxrz.com","root",null);
    這就常見了一個<a0 root xmlns:a0="http://www.ynpxrz.com">的xml Dom.
    a0表示命名空間
    2.載入xml,與微軟IE載入沒有l(wèi)oadXML()方法,只有l(wèi)oad()方法.load()方法與IE的load()方法相同.
    如果同步載入xml
    forasp_cnxmlDom.async = false;
    forasp_cnxmlDom.load("http://www.ynpxrz.com/rss.xml");
    如果以不再如則必須使用onload事件處理函數(shù)來判斷是否已經(jīng)載入.
    forasp_cnxmlDom.onload = function(){alert("已經(jīng)載入");}
    forasp_cnxmlDom.load("http://www.ynpxrz.com/rss.xml");
    3獲取XML,火狐提供了XMLSerializer對象.
    var xmlobj = new XMLSerializer();
    var xmlcontent = xmlobj.serializeToString(forasp_cnxmlDom,"text/xml");
    XMLSerializer的唯一一個方法serializeToString(),參數(shù)是:序列化的節(jié)點和內(nèi)容類型(text/xml或者application/xml).為forasp_cnxmlDom創(chuàng)建了XML代碼
    (這里不是很理解,待研究.)
    4.解析錯誤
    在xml文件解析過程中發(fā)生錯誤,xmlDOM會自動創(chuàng)建文檔來解釋這個錯誤.
    在此不多做研究.