Javascript 接收字符串生成 XML DOM 对象。
实测对 Firefox 、IE6 有效。可用于解析 ajax 的服务器响应结果,也可用于解析自定义字符串。1. [代码]函数 /** * Parses DOM from XML text.<br /> * * @author Typhoon.Free.Wolf * @version 2014-02-28_15-51 * @param blDebugFlag * - Debug flag: true, false.<br /> * @param strText * - XML text to be parsed.<br /> */function parseFromString(blDebugFlag, strText){ var strFuncName = 'parseFromString(' + blDebugFlag + ', strText)'; var dom = null; if (blDebugFlag) { alert('[S] ' + strFuncName); } if (blDebugFlag) { alert('[01] ' + strText); } var parser; var str1dNames; var intIdx; var e1, e2; var blActiveXOK; try { if (null != strText) { if (window.DOMParser) // Standard. { if (blDebugFlag) { alert('[02] window.DOMParser'); } parser = new DOMParser(); if (blDebugFlag) { alert('[03] To parse.'); } dom = parser.parseFromString(strText, 'text/xml'); if (blDebugFlag) { alert('[04] Parse OK:\n--------\n' + dom); } } else if (window.ActiveXObject) // Strange, such as trident... { blActiveXOK = false; str1dNames = ['MSXML2.DOMDocument.5.0', 'MSXML2.DOMDocument.4.0', 'MSXML2.DOMDocument.3.0', 'MSXML2.DOMDocument', 'Microsoft.XmlDom']; for (intIdx = 0; intIdx < str1dNames.length; intIdx++) { try { if (blDebugFlag) { alert('[05_' + intIdx + '] ' + str1dNames[intIdx]); } dom = new ActiveXObject(str1dNames[intIdx]); if (null != dom) { blActiveXOK = true; break; } } catch (e2) {} } if (!blActiveXOK) { if (blDebugFlag) { alert('[!] [06] strFuncName:\n--------\n' + e2); } } else { if (blDebugFlag) { alert('[07] ActiveXObject:\n' + dom); } dom.loadXML(strText);http://www.huiyi8.com/ppt/ if (blDebugFlag) { alert('[08] Parse OK:\n--------\n' + dom); } } } else { alert ('[09] No suitable way found to parse!'); } } } catch (e1) { if (blDebugFlag) { alert('[!] [10] strFuncName:\n--------\n' + e1); } } if (blDebugFlag) { alert('[E] ' + strFuncName); } return dom;}