javascript创建XML对象转换为字符串,创建字符串转换为XML对象

   今天使用FusionCharts遇到了一个问题,由于情况限制,我只可以使用javascript来完成Data.xml的准备,需要动态生成。

   那么就需要手动创建一个XML对象,并且转换字符串。这样可以避免强行使用字符串拼接的方法。


好了废话不多说了。直接看代码:

function createXMLDOM() {
    var xmlDOM;
    if (window.ActiveXObject) {
        xmlDOM = new ActiveXObject('Microsoft.XMLDOM');
    } else if (document.implementation
            && document.implementation.createDocument) {
        xmlDOM = document.implementation.createDocument('', '', null);
    } else {
        alert('您的浏览器不支持文档对象XMLDOM');
        return;
    }
    return xmlDOM;
}

这段代码可以支持大部分浏览器,所以调用之后可以直接得到XMLDOM对象:

/**
 * 创建XML 文件例子:
 * <graph>
 *     <set name='1' value='1'></set>
 *     <set name='2' value='2'></set>
 * </graph>
 */
function createXML() {
    var xmlDOM = createXMLDOM();
    if (xmlDOM) {
        var graph = xmlDOM.createElement('graph');
        for (var i = 0; i < 2; i++) {
            var set_name_value = xmlDOM.createElement('set');
            set_name_value.setAttribute('name', i + 1);
            set_name_value.setAttribute('value', i + 1);
            graph.appendChild(set_name_value);
        }
        xmlDOM.appendChild(graph);
        return parserXMLToString(xmlDOM);
    }
    return;
}

接下来是解析:

function parserXMLToString(xmlDOM) {
    if (window.ActiveXObject) {
        return xmlDOM.xml;
    } else if (document.implementation
            && document.implementation.createDocument) {
        return new XMLSerializer().serializeToString(xmlDOM);
    }
}

这里的xmlDOM.xml没有测试,下面的方法经过测试。


下面是从String转换为xmlDOM对象:

function parserStringToXMLDOM(str) {
    var parser = new DOMParser();
    var xmlDOM = parser.parseFromString(str, 'text/xml');
    return xmlDOM;
}

这样就可以在javascript中完成xml与String之间的转换了。

你可能感兴趣的:(JavaScript,xml,解析,xml与string转换)