Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript将JSON对象转换为XML_Javascript_Xml_Json - Fatal编程技术网

使用javascript将JSON对象转换为XML

使用javascript将JSON对象转换为XML,javascript,xml,json,Javascript,Xml,Json,我想将JSON对象转换为XML字符串,但我想不出正确的方法。 我发现了一个整洁的jQuery插件,名为json2xml,但它并没有逃逸数据 如何正确地转义数据,以便浏览器的XML解析器能够正常工作?没有唯一的方法可以做到这一点。您应该只将XML与模式一起使用,而JSON没有这样的模式。任何这样的转变如果天真地完成,都可能会失败 为什么不直接使用XML或JSON呢?你可以试试这个小程序库你可以使用google提供的名为x2js.js的外部js 你可以在这里看到演示 您可以在代码中使用此函数将JSO

我想将JSON对象转换为XML字符串,但我想不出正确的方法。 我发现了一个整洁的jQuery插件,名为json2xml,但它并没有逃逸数据


如何正确地转义数据,以便浏览器的XML解析器能够正常工作?

没有唯一的方法可以做到这一点。您应该只将XML与模式一起使用,而JSON没有这样的模式。任何这样的转变如果天真地完成,都可能会失败


为什么不直接使用XML或JSON呢?

你可以试试这个小程序库

你可以使用google提供的名为x2js.js的外部js

你可以在这里看到演示


您可以在代码中使用此函数将JSON转换为js中的XML

var json2xml=函数(o){


转换只是为了将XML与XSLT结合使用……这不是我的想法。服务器端脚本只输出JSON,我必须以某种方式将响应转换为有效的XML。这可行吗?当然可行。生成XML并不难,特别是当您有可用的DOM实现时(我会避免产生一个字符串,而仅仅是为了将它输入到解析器中一次)。但是,我不会使用您在网站上给出的方法,而是尝试进行/语义/转换。毕竟,您希望生成的XML根据某种模式是有效的。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。L如果链接页面发生更改,则仅使用墨水的答案可能会无效。虽然此链接可能会回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅使用链接的答案可能会无效。
            var tab = "\t";
            var toXml = function (v, name, ind) {
                var xml = "";
                if (v instanceof Array) {
                    for (var i = 0, n = v.length; i < n; i++)
                        xml += ind + toXml(v[i], name, ind + "\t") + "\n";
                }
                else if (typeof (v) == "object") {
                    var hasChild = false;
                    xml += ind + "<" + name;
                    for (var m in v) {
                        if (m.charAt(0) == "@")
                            xml += " " + m.substr(1) + "=\"" + v[m].toString() + "\"";
                        else
                            hasChild = true;
                    }
                    xml += hasChild ? ">" : "/>";
                    if (hasChild) {
                        for (var m in v) {
                            if (m == "#text")
                                xml += v[m];
                            else if (m == "#cdata")
                                xml += "<![CDATA[" + v[m] + "]]>";
                            else if (m.charAt(0) != "@")
                                xml += toXml(v[m], m, ind + "\t");
                        }
                        xml += (xml.charAt(xml.length - 1) == "\n" ? ind : "") + "</" + name + ">";
                    }
                }
                else {
                    xml += ind + "<" + name + ">" + v.toString() + "</" + name + ">";
                }
            }
            return xml;
        };
            var xmlDOM = json2xml(eval(jsonObj));
            var oSerializer = new XMLSerializer();
            var sXML = oSerializer.serializeToString(xmlDOM);