js json转xml(可自定义属性,区分大小写)
直接上代码~
在网上找了很多例子,大多数不适用,而且麻烦,自己进行了一些调整,完成了一个可以区分大小写的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('<',"g"); // <var reg2 = new RegExp('>',"g"); // >var reg3 = new RegExp('&',"g"); // &var reg4 = new RegExp(''',"g"); // 'var reg5 = new RegExp('"',"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(可自定义属性,区分大小写)相关推荐
- js对json、xml字符串格式化(美化增强可读性)
目录 格式化json 格式化xml 格式化json json格式化工具:JSON在线编辑器-89工具网JSON编辑器在线是一个在线编辑JSON的编辑器工具,可以把JSON内容或JSON文件进行格式化解 ...
- js实现json和xml之互转
在web工程里面,可能需要经常使用到xml和web的互转功能, 在这里,使用万恶的百度之后,发现用java实现效率和效果很差,json转成xml会出现一些类的头,比如<o>,<arr ...
- JS JSON Ajax
文章目录 HTML 系统结构 基本概念 Tag 常见页面错误 JavaScript 简单认识 JS 概述 JS 使用 JS变量 JS 数据类型 JS条件语句 JS 操作符 JS 循环语句 JS 函数 ...
- .NetCore获取Json和Xml格式的配置信息
本篇将和大家分享的是:如何获取Json和Xml格式的配置信息,主要介绍的是Configuration扩展方法的使用,因为netcore的web应用在Startup中已经默认嵌入appsettings. ...
- ajax html xml数据格式,AJAX | 数据格式JSON与XML的区别
XML与JSON的基本知识 HTML5学堂:XML和JSON是两种经典的数据格式,在AJAX当中的异步加载,申请的文件通常不是html.txt文件,而是JSON和XML.相比JSON文件比较居多.JS ...
- Json和XML之间的对比
一.可读性 JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负. 二.可扩展性 XML天生有很好的扩展性,JSON当然也有,没有什么是XML可以扩展而JSON却 ...
- 自己实现JSON、XML的解析 没那么难
本文的目的,不是针对现有的可用于生产环境的JSON.XML解析器源码进行剖析,而是介绍文本扫描的基础方法next(char),并以此为核心武器,根据目标语言的词法和语法特点,一步步地组织出条例清晰.易 ...
- JSON与XML优缺点对比分析
1. 定义介绍 1.1 XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种 ...
- JSON-lib框架,转换JSON、XML不再困难
Json-lib可以将Java对象转成json格式的字符串,也可以将Java对象转换成xml格式的文档,同样可以将json字符串转换成Java对象或是将xml字符串转换成Java对象. 一. 准备工作 ...
最新文章
- confluence7安全补丁_centos7安装confluence遇到的问题
- linux shell命令行及脚本编程实例详解_Linux高手必看的10本经典书籍
- 20175330 数据结构-排序(选做)
- 字符串移位:如“abcdefghi”右移2位后变成“cdefghiab”
- everytime you feel nervous
- php crypt加密 盐值,PHP crypt()函数的用法讲解
- 反思,今天总体感觉事情很简单,但项目比较多,没有掌握住很好的技巧,所以感觉很混乱
- 帮助新手理解equals和hashCode
- 毕设日志——RCNN
- hdu_2476_String painter(区间DP)
- CentOS 安装rz和sz命令
- 【java支付一 】java整合银联支付
- 成考专升本高等数学公式笔记
- 计算机减法函数word,Word中减法公式怎么用
- js月份的计算公式_JavaScript getMonth() 方法
- JAVA视频网盘分享
- 软件需求工程(第二章)
- 1400㎡,联诚发龙腾LED透明屏点燃五月天新加坡演唱会!
- 博途PLC 1200/1500PLC 工艺对象PID PID_Compact详细解读
- 华为智慧屏 SE55