var NODE_PARSER = NR.S, HOST = NR.__HOST; function parseXML(data){ var xml, docElement; if (HOST.DOMParser) { xml = (new DOMParser()).parseFromString(data, "text/xml"); } else { xml = new ActiveXObject("Microsoft.XMLDOM"); xml.async = "false"; xml.loadXML(data); } docElement = xml.documentElement; if (!docElement || !docElement.nodeName || docElement.nodeName === "parsererror") { NR.error("Invalid XML: " + data); } return xml; } ; function makeXML(xml){ return NR.isString(xml)? parseXML(xml): xml; } ; exports.parse = parseXML; exports.find = function (selector, context, first){ return NODE_PARSER.find(selector, makeXML(context), first); } ;