getTelementById用于XML文档,Mozilla扩展 [英] getElementById for XML Documents, Mozilla extensions

查看:159
本文介绍了getTelementById用于XML文档,Mozilla扩展的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在使用Mozilla的DOMParser方法从XML字符串中解析的DOM上是否支持document.getElementById方法?
我做了一个mozilla扩展,它读取一个xmlfile并使用DOM解析器将xml转换为一个DOM元素,并尝试通过Id获取元素。 getElementsByTagName方法工作,但不getElementById。它总是返回null。

  function(xmlString){

var parser = new DOMParser();
var doc = parser.parseFromString(xmlString,text / xml);
var aNodes = doc.getElementsByTagName(nodeTag);
for(var i = 0; i< aNodes.length; ++ i){
var id = aNodes [i] .getAttribute('id');
var resultNode = doc.getElementById(id);
alert(id);
alert(resultNode);
}
}

我试过上面的代码。 alert(id)返回正确的id,alert(resultNode)每次返回null。

解决方案

不, document.getElementById 通常不适用于任何XML文档。



在最近的浏览器(例如Firefox 3.5及更高版本)中,您可以使用 document.querySelector 来代替:

  var resultNode = doc.querySelector [id =+ id +]); 


Is document.getElementById method supported on DOM parsed from XML strings using the DOMParser method in Mozilla ? I am making a mozilla extension that reads an xmlfile and uses DOM Parser to convert the xml into a DOM element, and tries getting elements by Id. The method getElementsByTagName works but not getElementById. It always returns null.

  function (xmlString) {

      var parser = new DOMParser();
      var doc = parser.parseFromString(xmlString, "text/xml"); 
      var aNodes = doc.getElementsByTagName("nodeTag");
      for(var i=0; i<aNodes.length; ++i) {
        var id = aNodes[i].getAttribute('id');
        var resultNode = doc.getElementById(id);
        alert(id);
        alert(resultNode);
      }
    }

I tried the above code. alert(id) returns the proper id, where as alert(resultNode) returns null everytime.

解决方案

No, document.getElementById doesn't generally work on arbitrary XML documents.

In recent browsers (e.g. Firefox 3.5 and later), you can use document.querySelector instead:

var resultNode = doc.querySelector("[id=" + id + "]");

这篇关于getTelementById用于XML文档,Mozilla扩展的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆