XmlDom创建

目录

1,模板

1.1,加载xml文件

 1.2,加载xml字符串

2,代码讲解

2.1,创建Document对象

2.2,xmlDom加载xml

2.2.1,加载xml文件

2.2.2,加载xml字符串

2.2.3,加载设置---是否异步


1,模板

1.1,加载xml文件

<script>
	//aXMLFileName是文件路径名
	fun createDom() {
		try {
			//ie浏览器判断
			if (window.ActiveXObject) {
				xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
				xmlDoc.async = false;
				isLoaded = xmlDoc.load(aXMLFileName);
			} else if (document.implementation && document.implementation.createDocument) {
				try {
					//兼容其他浏览器:如Firefox, Mozilla, Opera, etc.
					xmlDoc = document.implementation.createDocument('', '', null);
					xmlDoc.async = false;
					xmlDoc.load(aXMLFileName);
				} catch(e) {
					var xmlhttp = new window.XMLHttpRequest();
					xmlhttp.open("GET", aXMLFileName, false);
					xmlhttp.send(null);
					xmlDoc = xmlhttp.responseXML;
				}
			} else {
				alert("load data error");
			}
		} catch(e) {
			alert(e.message);
		}
	}
</script>

 1.2,加载xml字符串

<script>
	function createXml(str) {  
		if (document.all) { //IE浏览器  
			var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async = false;  
            xmlDoc.loadXML(str);  
			return xmlDoc;  
		}  
		else { //非IE浏览器		  
			return new DOMParser().parseFromString(xmlStr, "text/xml");
		}
	}
</script>

2,代码讲解

2.1,创建Document对象

<script type="text/javascript">
    try //Internet Explorer
    {
        //IE浏览器下,创建dom对象
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    }catch(e)
    {
        try{
            //兼容其他浏览器:创造dom对象,如Firefox, Mozilla, Opera, etc.
            xmlDoc=document.implementation.createDocument("","",null);
        }catch(e)
        {
            alert(e.message)
        }
    }
</script>

2.2,xmlDom加载xml

2.2.1,加载xml文件

<script>
    //IE和firefox代码一样
    xmlDoc.load("/example/xdom/books.xml");
</script>

2.2.2,加载xml字符串

<script>
    //ie浏览器
    xmlDoc.LoadXML("xml字符串");
    //firefox浏览器
    var oParser=new DOMParser();
    xmlDom=oParser.parseFromString(xmlStr,"text/xml");
</script>

2.2.3,加载设置---是否异步

异步:执行操作过程中,在出结果前可以把控制权交给其他操作,执行其他命令

使用场景:1,非互斥操作时,2,非原子操作

        原子操作:一套指令集要么全部执行,要么都不执行

同步:当前操作出结果前,不能进行其他操作,具有鲜明的顺序特征

<script>
    //xmlDoc对象的操作是否允许异步操作
    xmlDoc.async = false;
    
    //在js的load方法中,允许异步----加载xml文件的同时,加载其他文件,尽快显示页面
	//在asp服务器上,不允许异步----防止还未加载完毕dom树,就执行xmlDom树的其他操作,引发异常
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值