zoukankan      html  css  js  c++  java
  • 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: -------- ' + 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: -------- ' + e2); }
                    }
                    else
                    {
                        if (blDebugFlag) { alert('[07] ActiveXObject: ' + dom); }
                        dom.loadXML(strText);http://www.huiyi8.com/ppt/​
     
                        if (blDebugFlag)
                        { alert('[08]  Parse OK: -------- ' + dom); }
                    }
                }
                else
                {
                    alert ('[09] No suitable way found to parse!');
                }
            }
        }
        catch (e1)
        {
            if (blDebugFlag) { alert('[!]   [10] strFuncName: -------- ' + e1); }
        }
     
        if (blDebugFlag) { alert('[E] ' + strFuncName); }
        return dom;
    }

  • 相关阅读:
    NodeJS加MongoDB应用入门
    调试NodeJS应用
    二月一号博客
    大三寒假第二篇学习记录
    大三寒假第一篇学习记录
    jQuery处理json数据
    Mapreduce案例测试
    你的灯还亮着吗?发现问题的真正所在(一)
    大型数据库技术(一)
    暑假第八周博客
  • 原文地址:https://www.cnblogs.com/xkzy/p/3867978.html
Copyright © 2011-2022 走看看