直接上代码~

在网上找了很多例子,大多数不适用,而且麻烦,自己进行了一些调整,完成了一个可以区分大小写的json转xml的小功能~

功能实现js:

    function CreatXmlDoc(obj){this.tagName=obj.tagName;this.properties = obj.properties;var children=obj.children.map(function(item){if(typeof item =="object"){item=new CreatXmlDoc(item)}return item})this.children=children;}function loadXMLDoc(dname) {try {//Internet ExplorerxmlDoc = new ActiveXObject("Microsoft.XMLDOM");} catch(e) {try {//Firefox, Mozilla, Opera, etc.xmlDoc = document.implementation.createDocument("", "", null);} catch(e) {alert(e.message)}}return xmlDoc;}CreatXmlDoc.prototype.render=function(){xmlDoc = loadXMLDoc();var xe1 = xmlDoc.createElement(this.tagName);for(var p in this.properties){xe1.setAttribute(p, this.properties[p]);}var children=this.children || [];children.forEach(function(child){var childEl=(child instanceof CreatXmlDoc)? child.render():xmlDoc.createTextNode(child)xe1.appendChild(childEl);})return xe1;}

// 封装调用函数
// 将json转成xml文档,再转成字符串
var xmlToString = function(eleJson) {var doc=new CreatXmlDoc(eleJson);SetupSerial=(new XMLSerializer()).serializeToString(doc.render());var reg = new RegExp(' xmlns="http://www.w3.org/1999/xhtml"',"g");// 替换转义字符var reg1 = new RegExp('&lt;',"g"); // <var reg2 = new RegExp('&gt;',"g"); // >var reg3 = new RegExp('&amp;',"g"); // &var reg4 = new RegExp('&apos;',"g"); // 'var reg5 = new RegExp('&quot;',"g"); // "SetupSerial=SetupSerial.replace(reg,"").replace(reg1, "<").replace(reg2, ">").replace(reg3, "&").replace(reg4, "'").replace(reg5, '"');return SetupSerial; }

准备工作完成后就可以使用了!

示例:

var obj={tagName:'Setup',properties:{type:"text",name:"hahha",title:"哈哈"},children:[{tagName:'ProtocolList',children:[{tagName:'Protocol',children:[{tagName:'Name',children:["onvif"]}, {tagName:'UserName',children:["admin"]}, {tagName:'PassWord',children:["admin"]}, {tagName:'Port',children:["8000"]}, {tagName:'MediaPort',children:["8000"]}, ]},{tagName:'Protocol',children:[{tagName:'Name',children:["onvif"]}, {tagName:'UserName',children:["admin"]}, {tagName:'PassWord',children:["admin"]}, {tagName:'Port',children:["8000"]}, {tagName:'MediaPort',children:["8000"]}, ]},{tagName:'Protocol',children:[{tagName:'Name',children:["onvif"]}, {tagName:'UserName',children:["admin"]}, {tagName:'PassWord',children:["admin"]}, {tagName:'Port',children:["8000"]}, {tagName:'MediaPort',children:["8000"]}, ]},              ]},{tagName:'Function',children:[{tagName:'PlayBack',children:["onvif"]             },{tagName:'Other',children:["rtsp"] }]}]}SetupSerial = xmlToString(obj);
console.log(SetupSerial);

输出结果:

<Setup type="text" name="hahha" title="哈哈"><ProtocolList><Protocol><Name>onvif</Name><UserName>admin</UserName><PassWord>admin</PassWord><Port>8000</Port><MediaPort>8000</MediaPort></Protocol><Protocol><Name>onvif</Name><UserName>admin</UserName><PassWord>admin</PassWord><Port>8000</Port><MediaPort>8000</MediaPort></Protocol><Protocol><Name>onvif</Name><UserName>admin</UserName><PassWord>admin</PassWord><Port>8000</Port><MediaPort>8000</MediaPort></Protocol></ProtocolList><Function><PlayBack>onvif</PlayBack><Other>rtsp</Other></Function>
</Setup>

大功告成!

转载于:https://www.cnblogs.com/zh-1721342390/p/9894731.html

js json转xml(可自定义属性,区分大小写)相关推荐

  1. js对json、xml字符串格式化(美化增强可读性)

    目录 格式化json 格式化xml 格式化json json格式化工具:JSON在线编辑器-89工具网JSON编辑器在线是一个在线编辑JSON的编辑器工具,可以把JSON内容或JSON文件进行格式化解 ...

  2. js实现json和xml之互转

    在web工程里面,可能需要经常使用到xml和web的互转功能, 在这里,使用万恶的百度之后,发现用java实现效率和效果很差,json转成xml会出现一些类的头,比如<o>,<arr ...

  3. JS JSON Ajax

    文章目录 HTML 系统结构 基本概念 Tag 常见页面错误 JavaScript 简单认识 JS 概述 JS 使用 JS变量 JS 数据类型 JS条件语句 JS 操作符 JS 循环语句 JS 函数 ...

  4. .NetCore获取Json和Xml格式的配置信息

    本篇将和大家分享的是:如何获取Json和Xml格式的配置信息,主要介绍的是Configuration扩展方法的使用,因为netcore的web应用在Startup中已经默认嵌入appsettings. ...

  5. ajax html xml数据格式,AJAX | 数据格式JSON与XML的区别

    XML与JSON的基本知识 HTML5学堂:XML和JSON是两种经典的数据格式,在AJAX当中的异步加载,申请的文件通常不是html.txt文件,而是JSON和XML.相比JSON文件比较居多.JS ...

  6. Json和XML之间的对比

    一.可读性 JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负. 二.可扩展性 XML天生有很好的扩展性,JSON当然也有,没有什么是XML可以扩展而JSON却 ...

  7. 自己实现JSON、XML的解析 没那么难

    本文的目的,不是针对现有的可用于生产环境的JSON.XML解析器源码进行剖析,而是介绍文本扫描的基础方法next(char),并以此为核心武器,根据目标语言的词法和语法特点,一步步地组织出条例清晰.易 ...

  8. JSON与XML优缺点对比分析

    1. 定义介绍 1.1 XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种 ...

  9. JSON-lib框架,转换JSON、XML不再困难

    Json-lib可以将Java对象转成json格式的字符串,也可以将Java对象转换成xml格式的文档,同样可以将json字符串转换成Java对象或是将xml字符串转换成Java对象. 一. 准备工作 ...

最新文章

  1. confluence7安全补丁_centos7安装confluence遇到的问题
  2. linux shell命令行及脚本编程实例详解_Linux高手必看的10本经典书籍
  3. 20175330 数据结构-排序(选做)
  4. 字符串移位:如“abcdefghi”右移2位后变成“cdefghiab”
  5. everytime you feel nervous
  6. php crypt加密 盐值,PHP crypt()函数的用法讲解
  7. 反思,今天总体感觉事情很简单,但项目比较多,没有掌握住很好的技巧,所以感觉很混乱
  8. 帮助新手理解equals和hashCode
  9. 毕设日志——RCNN
  10. hdu_2476_String painter(区间DP)
  11. CentOS 安装rz和sz命令
  12. 【java支付一 】java整合银联支付
  13. 成考专升本高等数学公式笔记
  14. 计算机减法函数word,Word中减法公式怎么用
  15. js月份的计算公式_JavaScript getMonth() 方法
  16. JAVA视频网盘分享
  17. 软件需求工程(第二章)
  18. 1400㎡,联诚发龙腾LED透明屏点燃五月天新加坡演唱会!
  19. 博途PLC 1200/1500PLC 工艺对象PID PID_Compact详细解读
  20. 华为智慧屏 SE55

热门文章

  1. linux下kafka与zookeeper集群部署
  2. 20155307 2016-2017 《Java程序设计》第三次实验报告
  3. CANVAS运用-对图片的压缩上传(仅针对移动浏览器)
  4. acm常见算法及例题
  5. 新浪微博api(.net)时间格式问题
  6. 2012 winter training @HIT Day 2 解题报告
  7. 让僵冷的翅膀飞起来—从实例谈OOP、工厂模式和重构[by Wayfarer]
  8. 《JavaScript 高级程序设计》精读笔记
  9. PostCSS自学笔记(二)【番外篇二】
  10. 分配的访问权限的展台应用:最佳做法