您的位置:首页 > Web前端 > JavaScript

IE中对javascript的XPath的支持

2014-10-30 11:27 295 查看
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: