Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

getElementById for XML Documents, Mozilla extensions

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 XML file 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, whereas alert(resultNode) returns null every time.

like image 775
Sharad Avatar asked Dec 29 '22 07:12

Sharad


1 Answers

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 + "]");
like image 166
Tim Down Avatar answered Dec 31 '22 00:12

Tim Down