=波波日志 > JavaScript/Ajax > javascript如何加载xml文件,兼容ie及ff,序列化与反序列化=
javascript如何加载xml文件,兼容ie及ff,序列化与反序列化
+展开
-JavaScript
var doc;
if(window.ActiveXObject)
{
doc=new ActiveXObject("microsoft.xmldom");
/*IE的这个对象可以使用doc.load('文件路径')加载文件,也可以用doc.loadXML("xml字符串")生成xml对象
加载文件时,可以使用async属性来指定异步或者同步,默认为异步async=true。
如果为异步时,可以使用onreadystatechange处理函数来判断加载状况。如下
doc=new ActiveXObject("Microsoft.XMLDOM");
doc.onreadystatechange=function(){if(doc.readyState==4)handler(doc);}
doc.load(url);
*/
}
else if(document.implementation&&document.implementation.createDocument)
{
doc=document.implementation.createDocument("","",null);
/*
对于w3c类,没有loadXML方法,只能使用DOMParser对象来加载xml字符串
也有async属性,但没有onreadystatechange,可以使用onload,参考如下
doc=document.implementation.createDocument("","",null);
doc.onload=function(){handler(xmldoc,url);}
doc.load(url);
===============================
parser=new DOMParser();
Parser.parseFromString("<root><child/></root>,"text/xml");
//当然可以扩展document的prototype,使它具有loadXML方法,如下
Document.prototype.loadXML = function (sXml) {
var oParser = new DOMParser();
var oXmlDom = oParser.parseFromString(sXml, "text/xml");
//删除原文档内容
while (this.firstChild) {
this.removeChild(this.firstChild);
}
//导入新的文档内容
for (var i=0; i < oXmlDom.childNodes.length; i++) {
var oNewNode = this.importNode(oXmlDom.childNodes[i], true);
this.appendChild(oNewNode);
}
};
*/
}
alert(doc.async)
/*
序列化与反序列化
//ie
alert(XMLDOM.xml)
//FF
var xmls=new XMLSerializer();
alert(xmls.serializeToString(XMLDOM))
*/
if(window.ActiveXObject)
{
doc=new ActiveXObject("microsoft.xmldom");
/*IE的这个对象可以使用doc.load('文件路径')加载文件,也可以用doc.loadXML("xml字符串")生成xml对象
加载文件时,可以使用async属性来指定异步或者同步,默认为异步async=true。
如果为异步时,可以使用onreadystatechange处理函数来判断加载状况。如下
doc=new ActiveXObject("Microsoft.XMLDOM");
doc.onreadystatechange=function(){if(doc.readyState==4)handler(doc);}
doc.load(url);
*/
}
else if(document.implementation&&document.implementation.createDocument)
{
doc=document.implementation.createDocument("","",null);
/*
对于w3c类,没有loadXML方法,只能使用DOMParser对象来加载xml字符串
也有async属性,但没有onreadystatechange,可以使用onload,参考如下
doc=document.implementation.createDocument("","",null);
doc.onload=function(){handler(xmldoc,url);}
doc.load(url);
===============================
parser=new DOMParser();
Parser.parseFromString("<root><child/></root>,"text/xml");
//当然可以扩展document的prototype,使它具有loadXML方法,如下
Document.prototype.loadXML = function (sXml) {
var oParser = new DOMParser();
var oXmlDom = oParser.parseFromString(sXml, "text/xml");
//删除原文档内容
while (this.firstChild) {
this.removeChild(this.firstChild);
}
//导入新的文档内容
for (var i=0; i < oXmlDom.childNodes.length; i++) {
var oNewNode = this.importNode(oXmlDom.childNodes[i], true);
this.appendChild(oNewNode);
}
};
*/
}
alert(doc.async)
/*
序列化与反序列化
//ie
alert(XMLDOM.xml)
//FF
var xmls=new XMLSerializer();
alert(xmls.serializeToString(XMLDOM))
*/
类别:JavaScript/Ajax 作者:波波 日期:2009-07-10 【评论:1】
- ddd
日期:2009-9-3 11:21:28 IP:123.121.*.*
ddd管理员回复(2009-9-3 22:40:32)
呵呵~~
发表留言
百度赞助
同类热门博文
- ·AJAX跨域问题解决办..
- ·ajax问题总结
- ·jQuery dataType指定..
- ·ajax+asp.net+mssql..
- ·ajax无刷新上传文件..
- ·ajax对象abort方法
- ·JavaScript代码,变..
- ·fckeditor编辑器在F..
博格Tag
- flash/flex/fcs/AIR(752)
- Asp.Net/C#/WCF(595)
- 操作系统及应用软件(376)
- JavaScript/Ajax(330)
- SQL及数据库(134)
- 黑客技术(115)
- Asp/VBScript(111)
- HTML/WML/CSS兼容/XML(102)
- PHP/apache/Perl(96)
- 网站排名及优化(92)
- 其他(75)
- 个人日志(66)
- lucene.net/分词技术(33)
- 计算机网络(26)
- 机械重工(26)
- C#设计模式(24)
- Google Maps开发(17)
- 日语学习(15)
- Canvas/VML/SVG(13)
- linux(11)
- 游戏开发(8)
- 正则表达式(5)
- Jsp/Java(4)
最新博文
- ·javascript实现html..
- ·Javascript风格要素..
- ·Javascript风格要素
- ·动态加载JavaScript
- ·JavaScript陷阱
- ·ajax技巧
- ·IE对CSS样式表的限制..
- ·什么是Javascript匿..
随机博文
