文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

javascript中将xml转为json的方法

2023-06-14 10:56

关注

这篇文章将为大家详细讲解有关javascript中将xml转为json的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

javascript中将xml转换为json字符串的方法:首先通过XML字符串或请求XML文件来获取XML的DOM对象;然后通过遍历和递归来获取子元素的nodeValue值;最后拼接出JSON字符串即可。

利用JavaScript将XML转换为JSON

首先通过XML字符串来生成XML的DOM对象:

function getXmlDocumentByXmlString(xmlString) {    var xmlDoc = null;    if (window.DOMParser) {        var parser = new DOMParser();        xmlDoc = parser.parseFromString(xmlString, "text/xml");    } else {        //IE        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");        xmlDoc.async = "false";        xmlDoc.loadXML(xmlString);    }    return xmlDoc;}

或者通过请求XML文件来获取XML的DOM对象:

function getXmlDocumentByFilePath(xmlFilePath) {    //xmlDocument对象    var xmlDoc = null;    //xmlhttp对象    var xmlhttp = null;    if (window.XMLHttpRequest) {        //IE7+, FireFox, Chrome, Opera, Safari        xmlhttp = new XMLHttpRequest();    } else {        //IE6, IE5        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");    }    xmlhttp.open("GET", xmlFilePath, false);    xmlhttp.send();    xmlDoc = xmlhttp.responseXML;    return xmlDoc;}

接下来就是重点的部分了,通过遍历和递归获取子元素的nodeValue,来拼接出JSON字符串,实现将XML转换成JSON字符串:

function convertToJSON(xmlDoc) {    //准备JSON字符串和缓存(提升性能)    var jsonStr = "";    var buffer = new Array();    buffer.push("{");    //获取xml文档的所有子节点    var nodeList = xmlDoc.childNodes;    generate(nodeList);        function generate(node_list) {        for (var i = 0; i < node_list.length; i++) {            var curr_node = node_list[i];            //忽略子节点中的换行和空格            if (curr_node.nodeType == 3) {                continue;            }            //如果子节点还包括子节点,则继续进行遍历            if (curr_node.childNodes.length > 1) {                buffer.push("\"" + curr_node.nodeName + "\": {");                generate(curr_node.childNodes);            } else {                var firstChild = curr_node.childNodes[0];                if (firstChild != null) {                    //nodeValue不为null                    buffer.push("\"" + curr_node.nodeName + "\":\"" + firstChild.nodeValue + "\"");                } else {                    //nodeValue为null                    buffer.push("\"" + curr_node.nodeName + "\":\"\"");                }            }            if (i < (node_list.length - 2)) {                buffer.push(",");            } else {                break;            }        }        //添加末尾的"}"        buffer.push("}");    }    jsonStr = buffer.join("");    return jsonStr;}

使用方式:通过getXmLDocumentByFilePath(xmlFilePath)或者getXmlDocumentByXmlString(xmlString)获取XML的Document对象,然后通过调用convertToJSON(xmlDocument)传入xml的Ducument对象即可得到转换后的JSON字符串。

适用范围:不含有attribute的任意XML文档。

关于“javascript中将xml转为json的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯