首页 > 代码库 > Javascript 解析字符串生成 XML DOM 对象。
Javascript 解析字符串生成 XML DOM 对象。
Javascript 接收字符串生成 XML DOM 对象。
实测对 Firefox 、IE6 有效。
可用于解析 ajax 的服务器响应结果,也可用于解析自定义字符串。
?1. [代码]函数 ppt模版
/**
* 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;
}
?