`

firefox并不支持selectSingleNode和selectNodes的解决方法

阅读更多
function test(){
		var perid = document.thisForm.PerID.value;
		
		var xml="test";
		 if(window.ActiveXObject){   
	        var xml=new ActiveXObject("Microsoft.XMLDOM");
			xml.async=false;
			xml.load("xxxx.xml");
			
	        
	    }else if((typeof document.implementation != 'undefined')&&
	    	(typeof document.implementation.createDocument!='undefined')){   
	        xml = document.implementation.createDocument("", "", null);

			xml.async=false;
			xml.load("xxxx.xml");

			
			//firefox并不支持selectSingleNode和selectNodes方法;下面两段是用XPath来解决firefox模拟selectSingleNode和selectNodes方法,正确性有待解决
			XMLDocument.prototype.selectSingleNode = Element.prototype.selectSingleNode = function (xpath){
		         var  x = this .selectNodes(xpath)
		         if ( ! x || x.length < 1 ) return   null ;
		         return  x[ 0 ];
		    }
			XMLDocument.prototype.selectNodes = Element.prototype.selectNodes = function (xpath){
		         var  xpe  =   new  XPathEvaluator();
		         var  nsResolver  =  xpe.createNSResolver( this .ownerDocument  ==   null   ?
		             this .documentElement :  this .ownerDocument.documentElement);
		         var  result  =  xpe.evaluate(xpath,  this , nsResolver,  0 ,  null );
		         var  found  =  [];
		         var  res;
		         while  (res  =  result.iterateNext())
		            found.push(res);
		         return  found;
		    }
			
			
	    }  
		//下面就可以用selectSingleNode和selectNodes方法
		var row=null;
	
		if(perid.substring(0,5)=="NO" && perid.length==9){
			row=xml.selectSingleNode("root/row[@ID='"+perid+"']");
			if (row!=null){
				document.thisForm.MenuColor.value=row.getAttribute("CssFileName");
				ChangeBgColor(document.thisForm.MenuColor.value);
			}
		}
	   
	}
分享到:
评论

相关推荐

    JDOM中XPath.selectNodes()和XPath.selectSingleNode()用法

    本文将深入探讨JDOM库中XPath的相关方法——`selectNodes()`和`selectSingleNode()`,以及它们的用法。 首先,我们来理解JDOM的基本概念。JDOM是Java Document Object Model的缩写,它提供了一种基于Java的API来...

    深入dom4j使用selectSingleNode方法报错分析

    在本文中,我们将深入探讨DOM4J库中`selectSingleNode`方法的使用,以及当该方法报错时可能的原因和解决策略。DOM4J是一个强大的Java XML API,它提供了灵活且高效的方式来处理XML文档。`selectSingleNode`是DOM4J中...

    js中使用xpath来解析xml元素实用.pdf

    为了解决这个问题,我们可以使用`prototype`属性扩展XMLDocument和Element对象,添加自定义的`selectNodes()`和`selectSingleNode()`方法。在提供的代码中,如果浏览器支持XPath,将为XMLDocument和Element对象添加...

    JS操作XML文件,兼容火狐、IE

    例如,IE支持的`selectNodes()`和`selectSingleNode()`方法在Firefox中不可用。在这种情况下,你可以使用`getElementsByTagName()`和`querySelector()`/`querySelectorAll()`作为替代。 6. `show.js`中的实现 文件`...

    js中使用xpath来解析xml元素.docx

    #### 通过Prototype属性解决SelectNodes方法和SelectSingleNode方法的浏览器兼容性问题 在不同的浏览器中,XPath的实现可能存在差异,特别是在早期版本的浏览器中。为了统一接口并提供一致的行为,可以通过扩展 `...

    C#操作XML方法.zip_guardlme_xml操作_服务器

    例如,使用XmlNode的SelectSingleNode或SelectNodes方法找到目标节点,再通过SetAttribute方法修改属性,或者ReplaceChild方法替换子节点。 序列化是将对象转换为XML的过程,C#提供System.Xml.Serialization命名...

    JS读取XML例子(兼容IE和FF).rar

    此外,IE支持`selectNodes()`和`selectSingleNode()`方法,而其他浏览器则不支持。 5. **XML序列化** 如果需要将处理过的XML数据返回到字符串,可以使用`XMLSerializer`对象的`serializeToString()`方法。但请注意...

    C# 读取 带 xmlns 命名空间 XML 结点 SelectSingleNode 类 For .NET Framework 1.1x

    C# 读取 带 xmlns 命名空间 XML 结点 SelectSingleNode 类 For .NET Framework 1.1x AutoPrefix(System.Xml.XmlNode xNode, System.Xml.XmlNamespaceManager xNameSpaceManager) AutoXPath(System.Xml.XmlNode ...

    C语言通过MSXML6.0读写XML文件(同时支持char和wchar-t字符数组)

    3. 查询XML文档中的节点,可以使用`selectNodes`或`selectSingleNode`方法,配合XPath表达式找到特定节点。 4. 获取或修改节点的属性和内容,通过`getAttribute`和`setAttribute`方法改变属性值,`getText`和`...

    兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码

    selectSingleNode:根据XPath选择单个节点。 selectNodes:根据XPath选择多个节点。 全部代码(zyllibjs_xml.js)—— 代码如下: /* zyllibjs_xml XML处理 @author zyl910 注意—— 1. Chrome 由于其安全机制限制, ...

    dom4j解析

    - **查找Element**:使用selectSingleNode或selectNodes方法,配合XPath表达式来查找特定元素。 5. **XPath支持** DOM4J内置了对XPath的支持,允许我们以简洁的方式定位XML文档中的任何部分。例如,`//...

    C#XML操作代码大全.pdf

    - 选择节点:使用SelectSingleNode或SelectNodes方法可以按照节点路径来选择XML文档中的节点。比如,XmlNode root = xmlDoc.SelectSingleNode("bookstore"); 是选择XML文档中的根节点。 - 创建新元素:CreateElement...

    XMLDOM对象方法手册.rar

    XMLDOM(XML Document Object Model)是...不过,需要注意的是,XMLDOM主要是在Internet Explorer中使用,对于其他浏览器,如Firefox、Chrome等,可能需要使用不同的API,如DOMParser或XMLHttpRequest来解析和操作XML。

    XML 增删改查 操作文档 及 源码(2)

    在C#中,可以使用XmlNode的SelectSingleNode或SelectNodes方法找到目标节点,然后调用InnerXml或InnerText属性进行修改。对于LINQ to XML,可以使用XPath查询或者LINQ查询表达式定位到节点,再进行更新。 五、XML的...

    dom4j使用简介

    - **XPath 查询**:实例化 `XPath` 对象,使用 `selectNodes()` 或 `selectSingleNode()` 方法进行查询。 - **修改 XML**:获取到目标节点后,可以调用 `remove()`, `addAttribute()`, `setText()` 等方法进行修改...

    C#操作XML时,对xmlNode增、删、改操作

    可以使用SelectSingleNode()方法或SelectNodes()方法来寻找XML文档中的某个节点,例如可以使用SelectSingleNode()方法来寻找名称为“name”的节点。 删除节点 可以使用RemoveAll()或RemoveChild()方法删除XML文档...

    使用 dom4j 解析 XML

    dom4j 提供了内置的 XPath 支持,可以通过 Element 或 Document 对象的 selectSingleNode() 和 selectNodes() 方法使用。例如,要找到所有 article 元素,可以使用以下代码:List&lt;ArticleElement&gt; articleElements =...

Global site tag (gtag.js) - Google Analytics