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;
}

Javascript 解析字符串生成 XML DOM 对象。的更多相关文章

  1. 使用Pull解析器生成XML文件和读取xml文件

    有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使 ...

  2. SAX解析和生成XML文档

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本人声明.否则将追究法律责任. 作者: 永恒の_☆ 地址: http://blog.csdn.net/chenghui031 ...

  3. 使用Pull解析器生成XML文件

    有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使 ...

  4. maven中使用dom4j解析、生成XML的简易方法

    此片文章主要写一些关于如何在maven工程中使用dom4j来解析或生成XML的建议方法,实际可使用的写法不仅限于如下所写的样例代码.此处进攻快速入手和提供思路使用. 首先配置pom.xml中的依赖的包 ...

  5. js ajax 传送xml dom对象到服务器

    客户端代码 1 <script> var isie = true; var xmlhttp = null; function createXMLHTTP() {//创建XMLXMLHttp ...

  6. java 解析并生成 XML

    在 java 中使用 Dom4j 解析 XML 对 XML 文件的解析,通常使用的是 Dom4j 和 jdom 作为XML解析工具. 在此只介绍下 Dom4j 对 XML 文件的解析使用方法. 1. ...

  7. 【Python】 xml解析与生成 xml

    xml *之前用的时候也没想到..其实用BeautifulSoup就可以解析xml啊..因为html只是xml的一种实现方式吧.但是很蛋疼的一点就是,bs不提供获取对象的方法,其find大多获取的都是 ...

  8. python xml文件解析 及生成xml文件

    #解析一个database的xml文件 """ <databaselist type="database config"> <dat ...

  9. JavaScript基础15——js的DOM对象

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

随机推荐

  1. python re 正则提取中文

    需求: 提取文本中的中文和数字字母(大小写都要),即相当于删除所有标点符号. 其中new是原字符串 news = re.findall(r'[\u4e00-\u9fa5a-zA-Z0-9]',new)

  2. [BZOJ2120][BZOJ2453]数颜色

    [BZOJ2120]数颜色 试题描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中 ...

  3. hdu 2063最大匹配

    #include<stdio.h> #include<string.h> int link[600],mark[600],map[600][600],m,n; int find ...

  4. unbuntu下安装多个JAVA JDK版本及如何切换

    当前环境已经安装过jdk1.6.0_45安装JDK 1.7.x时,若安装错误,可执行以下步骤:sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-ge ...

  5. Tsinghua OJ Zuma

    Description Let's play the game Zuma! There are a sequence of beads on a track at the right beginnin ...

  6. JS获取服务器时间并且计算距离当前指定时间差的函数

    项目中遇到了从服务器获取时间,现在记录一下方便以后查询: 1.后台代码:(创建一个date对象并以JSON的形式返回去) // 获取服务器时间 public String getNowServerTi ...

  7. Codeforces Round #292 (Div. 2) D. Drazil and Tiles [拓扑排序 dfs]

    传送门 D. Drazil and Tiles time limit per test 2 seconds memory limit per test 256 megabytes Drazil cre ...

  8. python学习之-- logging模块

    logging模块功能:提供了标准的日志接口,可以通过它存储各种格式的日志.日志5个级别分:debug(),info(),warning(),error(),critical() logging.ba ...

  9. Python 列表的复制操作

    2013-10-18 10:07:03|   import copy a = [1,2,3,['a','b']] b = a c = a[:] d = copy.copy(a) e = copy.de ...

  10. [Bzoj1499][NOI2005]瑰丽华尔兹[简单DP]

    1499: [NOI2005]瑰丽华尔兹 Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 1714  Solved: 1042[Submit][Status ...