登录社区云,与社区用户共同成长
邀请您加入社区
/** * Change JSON object to XML string. * The JSON object value must be a string,an array or object. * If the value is an integer or a float value,you must add " or ' to the value. * @author bitjjj * @param isPretty If format xml * @param separator Set line separator * @example var util = new JsonToXml(true); var result = util.toXml(JSONObject); * @return */ function JsonToXml(isPretty,separator){ this.result=[]; this.isPretty = !!isPretty; this.separator = separator || "/r/n"; this.result.push("<?xml version=/"1.0/" encoding=/"utf-8/"?>"); if(this.isPretty){ //this.result.push(this.separator); } } JsonToXml.prototype.spacialChars=["&","<",">","/"","'"]; JsonToXml.prototype.validChars:["&","<",">",""","'"], JsonToXml.prototype.toString = function(){ return this.result.join(""); }; JsonToXml.prototype.replaceSpecialChar = function(s){ for(var i=0;i<this.spacialChars.length;i++){ s=s.replace(new RegExp(this.spacialChars[i],"g"),this.validChars[i]); } return s; }; JsonToXml.prototype.appendText = function(s){ s = this.replaceSpecialChar(s); this.result.push(s); }; JsonToXml.prototype.appendFlagBegin = function(s){ this.result.push("<"+s+">"); }; JsonToXml.prototype.appendFlagEnd = function(s){ this.result.push("</"+s+">"); if(this.isPretty){ //this.result.push(this.separator); } }; JsonToXml.prototype.each = function(arr,cb){ for(var i=0;i<arr.length;i++){ cb(i,arr[i]); } }; /** * format xml string to pretty string * @param xml string * @return pretty xml string * @reference http://stackoverflow.com/questions/376373/pretty-printing-xml-with-javascript */ JsonToXml.prototype.formatXml = function (xml) { var formatted = []; var reg = /(>)(<)(//*)/g; xml = xml.replace(reg, '$1'+this.separator+'$2$3'); var pad = 0,self = this; this.each(xml.split(this.separator), function(index, node) { var indent = 0; if (node.match( /.+<///w[^>]*>$/ )) { indent = 0; } else if (node.match( /^<///w/ )) { if (pad != 0) { pad -= 1; } } else if (node.match( /^</w[^>]*[^//]>.*$/ )) { indent = 1; } else { indent = 0; } var padding = ''; for (var i = 0; i < pad; i++) { padding += ' '; } formatted.push(padding + node + self.separator); pad += indent; }); return formatted.join(""); }; JsonToXml.prototype.toXml = function(json){ this._toXml(json); if(this.isPretty){ return this.formatXml(this.toString()); } return this.toString(); }; JsonToXml.prototype._toXml = function(json){ for(var tag in json){ //need to handle Array object specially if(json[tag].constructor==Array){ for(var i=0;i<json[tag].length;i++){ this.appendFlagBegin(tag); var item = json[tag][i]; if(item.constructor == Object){ this._toXml(item); } else if(item.constructor == Array){ var obj={}; obj[tag]=item; this._toXml(obj); } else if(item.constructor == String){ this.appendText(item); } this.appendFlagEnd(tag); } } else{ this.appendFlagBegin(tag); if(json[tag].constructor==Object){ this._toXml(json[tag]); } else if(json[tag].constructor==String){ this.appendText(json[tag]); } this.appendFlagEnd(tag); } } };
旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。
更多推荐
[转载]在Windows环境下安装GNU Radio
转自:在Windows环境下安装GNURadio_恐弱智_新浪博客GNU Radio是用Python开发的,大部分开源的工程能够在Linux环境下运行良好,而Windows下却运行的很勉强,而且安装配置都很复杂。GNU Radio算是个例外了,不光提供了Windows的二进制安装,还有比较详细的说明。我是Python小白,所以折腾了好久才弄好,特意记录下来,免得以后再装还折腾。GNU Radio的
centOS 8 使用dnf安装Docker
DNF是什么?CentOS 8使用YUM软件包管理器版本v4.0.4。现在,该版本使用DNF(已删除YUM)。DNF是软件包管理器。它会在Linux发行版上安装,执行更新并删除软件包。使用DNF安装Docker跳过具有损坏依赖性的程序包一个有效的解决方案是使您的CentOS 8系统使用以下--nobest命令安装最符合条件的版本:sudo dnf install docker...
定时同步数据库表(mysql+linux+crontab)
sync.sh里面的参数需要改变,ip/username/password/database/tablesync.sh#!/bin/sh# Please change the IP and password of the data source db.# Then change the table name.filename=/home/nington/db/$(date +%Y-%m
扫一扫分享内容
所有评论(0)