上一個文章寫了ie操作xml,這次繼續火狐下javascript操作xml,火狐提供的xmldom比ie更加標準,火狐下操作xmldom實際上就是它的javascript實現,火狐實現了dom level2,而微軟的ie僅支持dom level1.
1創建dom,dom標準指出,document.implementation對象有createdocument()方法.
var forasp_cnxmldom = document.mplementation.createdocument(,,null);
該方法的三個參數分別表示:文檔命名空間的url,文檔元素標簽名 ,和一個文檔類型對象(總是null,因為火狐滅幼對文檔類型對象的支持)
舉例
var forasp_cnxmldom = document.mplementation.createdocument(http://www.kk47kk.com,root,null);
這就常見了一個<a0 root xmlns:a0=http://www.kk47kk.com>的xml dom.
a0表示命名空間
2.載入xml,與微軟ie載入沒有loadxml()方法,只有load()方法.load()方法與ie的load()方法相同.
如果同步載入xml
forasp_cnxmldom.async = false;
forasp_cnxmldom.load(http://www.kk47kk.com/rss.xml);
如果以不再如則必須使用onload事件處理函數來判斷是否已經載入.
forasp_cnxmldom.onload = function(){alert(已經載入);}
forasp_cnxmldom.load(http://www.kk47kk.com/rss.xml);
3獲取xml,火狐提供了xmlserializer對象.
var xmlobj = new xmlserializer();
var xmlcontent = xmlobj.serializetostring(forasp_cnxmldom,text/xml);
xmlserializer的唯一一個方法serializetostring(),參數是:序列化的節點和內容類型(text/xml或者application/xml).為forasp_cnxmldom創建了xml代碼
(這里不是很理解,待研究.)
4.解析錯誤
在xml文件解析過程中發生錯誤,xmldom會自動創建文檔來解釋這個錯誤.
在此不多做研究.