目前大多浏览器都内置了用于读取和操作XML的解析器,使用XML解析器可以将XML文档读取到内存中,并可以将其转换成javaScript中的对象。
[IE浏览器中解析XML文件]
1.创建一个XMLDOM对象,可以用来加载XML文件
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
2.加载方式如下,浏览器将xml文件的内容读取到内存中
xmlDoc.load("student.xml");
**如果XML文件中的内容比较大时,可以在加载[load()]之前设置加载xml文件的方式:
xmlDoc.async = false;
async属性值为false,则使用同步方式加载xml文件,即在该文件加载完毕之前,javaScript是不会进行其它操作的;如果为 true,则将会使用异步的方式加载xml文件,若xml文件比较大,则可能会出现在该文件还未加载完毕,javaScript就会执行到读取xml内容的代码的情况
********总结*******
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.load("student.xml");
document.write("返回根元素名称:"+xmlDoc.documentElement.nodeName);
[其它浏览器中解析XML文件]
var xmlDoc = document.implementation.createDocument("","",null);
**implementation属性可以返回与当前文档相关联的DOMImplementation接口,它是一个特殊的用于提供服务的接口,可以控制操作文档.DOMImplementation接口中的方法有:hasFeature()、createDocumentType()、createDocument().其中,createDocument()可以创建一个指定类型的xml文档对象。
语法: createDocument(qualifiedName,publicId,systemId)
qualifiedName-->用于创建文档元素的命名空间url
publicId-->要创建的文档元素的限定名称
systemId-->要创建的文档类型,可以为null
*********总结********
var xmlDoc = document.implementation.createDocument("","",null);
xmlDoc.async = false;
xmlDoc.load("student.xml");
document.write("返回根元素名称:"+xmlDoc.documentElement.nodeName);
[跨浏览器解析XML文件的方法]
var xmlDoc = null;
if(window.ActiveXObject){
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
}else{
try{
xmlDoc = document.implementation.createDocument("","",null);
}catch(e){} } //判断是否已经调用了XML解析器 if(xmlDoc != null){ xmlDoc.async = false; xmlDoc.load("student.xml"); ...... }
else{ alert("您的浏览器不支持XML解析器!"); }