上一个文章写了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.ynpxrz.com,root,null);
这就常见了一个<a0 root xmlns:a0=http://www.ynpxrz.com>的xml dom.
a0表示命名空间
2.载入xml,与微软ie载入没有loadxml()方法,只有load()方法.load()方法与ie的load()方法相同.
如果同步载入xml
forasp_cnxmldom.async = false;
forasp_cnxmldom.load(http://www.ynpxrz.com/rss.xml);
如果以不再如则必须使用onload事件处理函数来判断是否已经载入.
forasp_cnxmldom.onload = function(){alert(已经载入);}
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(),参数是:序列化的节点和内容类型(text/xml或者application/xml).为forasp_cnxmldom创建了xml代码
(这里不是很理解,待研究.)
4.解析错误
在xml文件解析过程中发生错误,xmldom会自动创建文档来解释这个错误.
在此不多做研究.