What this script does:
function name: getMSXMLObjName()
properties: objType: the object you want (XMLHTTPRequest,DOMDocument etc.) override: do not sniff xml parser version MSXMLParser: used only when override. user has MS XML Parser installed. MSXMLParserVer: used only when override. version of MSXML Parser installed.
Example:
// get correct progid for DOMDocument.var objDOM = getMSXMLObjName('DOMDocument');
All objects in Microsoft XML Parser from version 1.0 to 5.0 is included:
This is the script:
function getMSXMLObjName(objType,override,MSXMLParser,MSXMLParserVer){
if(!override) {
var oXMLClientVer = new XMLClientVer();
MSXMLParser = oXMLClientVer.MSXMLParser;
MSXMLParserVer = oXMLClientVer.MSXMLParserVer;
oXMLClientVer = null;
}
if(MSXMLParser) {
switch (MSXMLParserVer) {
case 5 : {
switch (objType) {
case 'DOMDocument': {return 'Msxml2.DOMDocument.5.0';break;}
case 'DSOControl': { return 'Msxml2.DSOControl.5.0';break;}
case 'FreeThreadedDOMDocument': { return 'Msxml2.FreeThreadedDOMDocument.5.0';break;}
case 'MXDigitalSignature': { return 'Msxml2.MXDigitalSignature.5.0';break;}
case 'MXHTMLWriter': { return 'Msxml2.MXHTMLWriter.5.0';break;}
case 'MXNameSpaceManager': { return 'Msxml2.MXNamespaceManager.5.0';break;}
case 'MXXMLWriter': { return 'Msxml2.MXXMLWriter.5.0';break;}
case 'SAXAttributes': { return 'Msxml2.SAXAttributes.5.0';break;}
case 'SAXXMLReader': { return 'Msxml2.SAXXMLReader.5.0';break;}
case 'ServerXMLHTTP': { return 'Msxml2.ServerXMLHTTP.5.0';break;}
case 'XMLHTTPRequest': { return 'Msxml2.XMLHTTP.5.0';break;}
case 'XMLSchemaCache': { return 'Msxml2.XMLSchemaCache.5.0';break;}
case 'XSLTemplate': { return 'Msxml2.XSLTemplate.5.0';break;}
default: {alert('Invalid object');return '';break;} } break; }
case 4 : { switch (objType) {
case 'DOMDocument': { return 'Msxml2.DOMDocument.4.0';break;}
case 'DSOControl': { return 'Msxml2.DSOControl.4.0';break;}
case 'FreeThreadedDOMDocument': { return 'Msxml2.FreeThreadedDOMDocument.4.0';break;}
case 'MXHTMLWriter': { return 'Msxml2.MXHTMLWriter.4.0';break;}
case 'MXNameSpaceManager': { return 'Msxml2.MXNamespaceManager.4.0';break;}
case 'MXXMLWriter': { return 'Msxml2.MXXMLWriter.4.0';break;}
case 'SAXAttributes': { return 'Msxml2.SAXAttributes.4.0';break;}
case 'SAXXMLReader': { return 'Msxml2.SAXXMLReader.4.0';break;}
case 'ServerXMLHTTP': { return 'Msxml2.ServerXMLHTTP.4.0';break;}
case 'XMLHTTPRequest': { return 'Msxml2.XMLHTTP.4.0';break;}
case 'XMLSchemaCache': { return 'Msxml2.XMLSchemaCache.4.0';break;}
case 'XSLTemplate': { return 'Msxml2.XSLTemplate.4.0';break;}
default: {alert('Invalid object');return '';break;}
}
break;
}
case 3 : {
switch (objType) {
case 'DOMDocument': { return 'MSXML2.DOMDocument.3.0';break;}
case 'FreeThreadedDOMDocument': { return 'MSXML2.FreeThreadedDOMDocument.3.0';break;}
case 'DSOControl': { return 'MSXML2.DSOControl.3.0';break;}
case 'XMLHTTPRequest': { return 'MSXML2.XMLHTTP.3.0';break;}
case 'XMLSchemaCache': { return 'MSXML2.XMLSchemaCache.3.0';break;}
case 'XSLTemplate': { return 'MSXML2.XSLTemplate.3.0';break;}
default: {alert('Invalid object');return '';break;} } break; }
case 2 : {
switch (objType) {
case 'DOMDocument': { return 'MSXML2.DOMDocument';break;}
case 'FreeThreadedDOMDocument': { return 'MSXML2.FreeThreadedDOMDocument';break;}
case 'DSOControl': { return 'MSXML2.DSOControl';break;}
case 'XMLHTTPRequest': { return 'MSXML2.XMLHTTP';break;}
case 'XMLSchemaCache': { return 'MSXML2.XMLSchemaCache';break;}
case 'XSLTemplate': { return 'MSXML2.XSLTemplate';break;}
default: {alert('Invalid object');return '';break;} } break; }
case 1 : {
switch (objType) {
case 'DOMDocument': { return 'Microsoft.DOMDocument';break;}
case 'FreeThreadedDOMDocument': { return 'Microsoft.FreeThreadedDOMDocument';break;}
case 'DSOControl': { return 'Microsoft.DSOControl';break;}
case 'XMLHTTPRequest': { return 'Microsoft.XMLHTTP';break;}
default: {alert('Invalid object');return '';break;} } break; }
default: {alert('No object defined');return '';break;} } } else {
alert('XML Parser not installed!');return ''; }}
Will post a script later that combines the cross-browser XML Sniffer and this script together. With it you can easily create a DOMDocument in Mozilla or in IE (with latest version of XML Parser).