/*
*author:sohighthesky -- http://www.cnblogs.com/sohighthesky
*content: selectNodes vs getElementsByTagName
*/
if (!window.ActiveXObject) {
(function(){
var oEvaluator=new XPathEvaluator(),oResult;
XMLDocument.prototype.selectNodes = function(sXPath) {
oResult = oEvaluator.evaluate(sXPath, this, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
var aNodes = [];
if (oResult != null) {
var oElement = oResult.iterateNext();
while (oElement) {
aNodes[aNodes.length]=oElement;
oElement = oResult.iterateNext();
}
}
return aNodes;
}
XMLDocument.prototype.selectSingleNode = function(sXPath) {
oResult = oEvaluator.evaluate(sXPath, this, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
// FIRST_ORDERED_NODE_TYPE returns the first match to the xpath.
return oResult==null?null:oResult.singleNodeValue;
}
})()
}
var stringToDom=function(text) {
var doc;
if(window.ActiveXObject) {
doc = new ActiveXObject("MSXML2.DOMDocument");
doc.loadXML(text).documentElement;
} else {
doc = (new DOMParser()).parseFromString(text,"text/xml");
}
return doc;
}
var xmlDoc=stringToDom("<body><a href='a'>a</a><a href='b'>b</a></body>"),
出自:
http://www.cnblogs.com/sohighthesky/archive/2010/02/26/getelementsbytagname-selectnodes.html
分享到:
相关推荐
### JavaScript的IE与Firefox兼容性解决方案 #### 一、`document.form.item` 问题 - **现有问题**:代码中存在大量使用 `document.formName.item("itemName")` 的语句,这种写法在 Mozilla Firefox(简称MF)...
而在Firefox这样的非IE浏览器中,`getElementsByTagName` 是唯一可用的方法,因为它不支持 `selectNodes`。 `selectNodes` 是Internet Explorer特有的方法,它使用XPath表达式来查找匹配的节点。XPath是一种强大的...
} catch(ex) { } if (""==htmlStr) { try { // Support Firefox, Mozilla, Opera, etc var xsltProcessor = new XSLTProcessor(); var xslDoc = document.implementation.createDocument("", "", null); xslDoc....
例如,IE支持的`selectNodes()`和`selectSingleNode()`方法在Firefox中不可用。在这种情况下,你可以使用`getElementsByTagName()`和`querySelector()`/`querySelectorAll()`作为替代。 6. `show.js`中的实现 文件`...
XPath,全称XML Path Language,是一种在XML文档中查找...例如,Internet Explorer支持`selectNodes()`和`selectSingleNode()`方法,而其他浏览器如Firefox、Chrome等则通常使用`document.evaluate()`来执行XPath查询。
这个"JS读取XML例子(兼容IE和FF).rar"压缩包包含了一个示例,展示了如何在不依赖任何插件的情况下,使用JavaScript在Internet Explorer(IE)和Firefox(FF)等浏览器中读取XML文件。下面我们将详细探讨JavaScript...
通过检查navigator.userAgent字符串中是否包含特定的浏览器标识字符串,如"MSIE"代表IE浏览器,"Chrome"代表Chrome浏览器,"Firefox"代表Firefox浏览器等,来确定浏览器的类型。 知识点四:XML文档解析技巧 文章还...
XMLDOM(XML Document Object Model)是...不过,需要注意的是,XMLDOM主要是在Internet Explorer中使用,对于其他浏览器,如Firefox、Chrome等,可能需要使用不同的API,如DOMParser或XMLHttpRequest来解析和操作XML。
// 对于非IE浏览器(例如Chrome, Firefox) if (window.DOMParser) { var xmlDoc = new DOMParser().parseFromString("", "text/xml"); } ``` ##### 2. 加载XML文件或字符串 创建了DOMDocument对象后,我们可以...
5. **浏览器兼容性**:虽然题目中提到的是IE,但考虑到现代开发环境,小工具可能还需要处理其他浏览器,如Firefox、Chrome等,它们使用不同的DOM和XPath实现。因此,代码可能需要进行条件判断或使用浏览器API来实现...
rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"; GWP_Response = (HttpWebResponse)GWP_Request.GetResponse(); GWP_XMLdoc = new XmlDocument(); GWP_XMLdoc.Load(GWP_Response.GetResponseStream()); } catch...
- **解决浏览器兼容性问题**:由于Firefox浏览器不支持`selectNodes`方法,因此通过自定义方法实现了对XML文档的遍历和查询。 - **方法定义**:`XMLDocument.prototype.selectNodes` 和 `Element.prototype....
- **Firefox兼容性**:在Firefox浏览器中,使用`document.implementation.createDocument`方法创建XML文档对象,然后进行节点读取和操作。 #### 安全和性能考虑 - **安全措施**:在实际应用中,对从XML文件中获取...
不同的浏览器内核(如IE的Trident、Chrome的Blink、Firefox的Gecko等)对标准的支持程度不一,特别是对于早期的DOM(文档对象模型)操作和XML处理方面,这种差异尤为明显。本文将重点介绍在JavaScript中处理DOM和XML...
3. 在Firefox浏览器下,可以使用`document.implementation.createDocument`来将XML字符串转换为DOM对象。示例代码如下: ```javascript var xmlDoc = document.implementation.createDocument("", "doc", null); var...
对于Firefox浏览器,由于它不支持`selectNodes`,可以使用`getElementsByTagName`来代替: ```javascript var cNodes = xmlDoc.getElementsByTagName("nodeName"); for (var j = 0; j ; j++) { var value = cNodes...
2. **Firefox 下将字符串转换为 DOM 对象** ```javascript // 创建 DOM 对象 var xmlDoc = document.implementation.createDocument("", "doc", null); var xmlString = "<book><title>ajax</title><author>...
6. **跨浏览器兼容**:考虑到JavaScript环境的多样性,XML for SCRIPT致力于在不同浏览器上提供一致的性能和功能,如IE、Firefox、Chrome、Safari等。 7. **开源许可证**:作为开源软件,XML for SCRIPT遵循特定的...