IE中对javascript的XPath的支持


xml代码如下
<?xml version="1.0" encoding="utf-8" ?>
<employees>
	<employee title="Software Engineer">
		<name>Nicholas C. Zakas</name>
	</employee>
	<employee title="Salesperson">
		<name>Jim Smith</name>
	</employee>
</employees>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <script type="text/javascript">
		function XmlDom(){
			if(window.ActiveXObject){
				alert('创建了IE的xml对象');
				//IE中xml对象的各个版本
				var arrSignatures	=['MSXML2.DOMDocument.5.0','MSXML2.DOMDocument.4.0','MSXML2.DOMDocument.3.0','MSXMS2.DOMDocument','Microsoft.XmlDom'];
				for(var i=0;i < arrSignatures.length;i++){
					try{
						//IE中创建基于ActiveX的ActiveXObject对象
						var oXmlDom = new ActiveXObject(arrSignatures[i]);
						return oXmlDom
					}catch(oError){
						//抛出异常
						throw new Error(oError);
					}
				}
			}
		}
		var oXmlDom = new XmlDom();
		oXmlDom.onreadystatechange = function(){
			if(oXmlDom.readyState == 4){
				if(oXmlDom.parseError !=0){
					var oError = oXmlDom.parseError;
					alert('An error occurred:\nError Cod:'+oError.errorCode+'\nLine:'+oError.line+'\nLine Pos:'+oError.linepos+'\nReason:'+oError.reason);
				}else{
					alert('加载成功');
				}
			}
		}
		oXmlDom.async = false;
		oXmlDom.load('employ.xml');
		/*如果是在IE中,可以直接得到某个模式的结点的集合,采用selectNodes方法
		 *得到xml文档中第一个employee的name
		 *[@title="Salesperson"]匹配employee的title属性
		 */
		var lstNodes = oXmlDom.documentElement.selectNodes('employee[position()=1]/name');
		//循环遍历出每个name结点中的内容
		for(var i = 0;i < lstNodes.length;i++){
			//加上.xml是为了看清楚匹配到的xml代码
			alert(lstNodes[i].xml);
		}
		/*如果只需要匹配第一个元素的话,也可以采用select SingleNode()方法
		 *
		 */
		 var oElement = oXmlDom.documentElement.selectSingleNode('employee/name');
		 alert(oElement.xml);
  </script>
 </HEAD>

 <BODY>

 </BODY>
</HTML>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值