forked from abdolence/x2js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathxml2json.min.js
1 lines (1 loc) · 6.6 KB
/
xml2json.min.js
1
!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.X2JS=t()}(this,function(){return function(e){"use strict";function t(){void 0===e.escapeMode&&(e.escapeMode=!0),e.attributePrefix=e.attributePrefix||"_",e.arrayAccessForm=e.arrayAccessForm||"none",e.emptyNodeForm=e.emptyNodeForm||"text",void 0===e.enableToStringFunc&&(e.enableToStringFunc=!0),e.arrayAccessFormPaths=e.arrayAccessFormPaths||[],void 0===e.skipEmptyTextNodesForObj&&(e.skipEmptyTextNodesForObj=!0),void 0===e.stripWhitespaces&&(e.stripWhitespaces=!0),e.datetimeAccessFormPaths=e.datetimeAccessFormPaths||[],void 0===e.useDoubleQuotes&&(e.useDoubleQuotes=!1),e.xmlElementsFilter=e.xmlElementsFilter||[],e.jsonPropertiesFilter=e.jsonPropertiesFilter||[],void 0===e.keepCData&&(e.keepCData=!1)}function n(){}function r(e){var t=e.localName;return null==t&&(t=e.baseName),(null==t||""==t)&&(t=e.nodeName),t}function i(e){return e.prefix}function a(e){return"string"==typeof e?e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"):e}function s(e,t,n,r){for(var i=0;i<e.length;i++){var a=e[i];if("string"==typeof a){if(a==r)break}else if(a instanceof RegExp){if(a.test(r))break}else if("function"==typeof a&&a(t,n,r))break}return i!=e.length}function o(t,n,r){switch(e.arrayAccessForm){case"property":t[n]instanceof Array?t[n+"_asArray"]=t[n]:t[n+"_asArray"]=[t[n]]}!(t[n]instanceof Array)&&e.arrayAccessFormPaths.length>0&&s(e.arrayAccessFormPaths,t,n,r)&&(t[n]=[t[n]])}function l(e){var t=e.split(/[-T:+Z]/g),n=new Date(t[0],t[1]-1,t[2]),r=t[5].split(".");if(n.setHours(t[3],t[4],r[0]),r.length>1&&n.setMilliseconds(r[1]),t[6]&&t[7]){var i=60*t[6]+Number(t[7]),a=/\d\d-\d\d:\d\d$/.test(e)?"-":"+";i=0+("-"==a?-1*i:i),n.setMinutes(n.getMinutes()-i-n.getTimezoneOffset())}else-1!==e.indexOf("Z",e.length-1)&&(n=new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds())));return n}function c(t,n,r){if(e.datetimeAccessFormPaths.length>0){var i=r.split(".#")[0];return s(e.datetimeAccessFormPaths,t,n,i)?l(t):t}return t}function u(t,n,r,i){return n==b.ELEMENT_NODE&&e.xmlElementsFilter.length>0?s(e.xmlElementsFilter,t,r,i):!0}function f(t,n){if(t.nodeType==b.DOCUMENT_NODE){for(var a=new Object,s=t.childNodes,l=0;l<s.length;l++){var _=s.item(l);if(_.nodeType==b.ELEMENT_NODE){var d=r(_);a[d]=f(_,d)}}return a}if(t.nodeType==b.ELEMENT_NODE){var a=new Object;a.__cnt=0;for(var s=t.childNodes,l=0;l<s.length;l++){var _=s.item(l),d=r(_);if(_.nodeType!=b.COMMENT_NODE){var p=n+"."+d;u(a,_.nodeType,d,p)&&(a.__cnt++,null==a[d]?(a[d]=f(_,p),o(a,d,p)):(null!=a[d]&&(a[d]instanceof Array||(a[d]=[a[d]],o(a,d,p))),a[d][a[d].length]=f(_,p)))}}for(var m=0;m<t.attributes.length;m++){var x=t.attributes.item(m);a.__cnt++,a[e.attributePrefix+x.name]=x.value}var g=i(t);return null!=g&&""!=g&&(a.__cnt++,a.__prefix=g),null!=a["#text"]&&(a.__text=a["#text"],a.__text instanceof Array&&(a.__text=a.__text.join("\n")),e.stripWhitespaces&&(a.__text=a.__text.trim()),delete a["#text"],"property"==e.arrayAccessForm&&delete a["#text_asArray"],a.__text=c(a.__text,d,n+"."+d)),null!=a["#cdata-section"]&&(a.__cdata=a["#cdata-section"],delete a["#cdata-section"],"property"==e.arrayAccessForm&&delete a["#cdata-section_asArray"]),0==a.__cnt&&"text"==e.emptyNodeForm?a="":1==a.__cnt&&null!=a.__text?a=a.__text:1!=a.__cnt||null==a.__cdata||e.keepCData?a.__cnt>1&&null!=a.__text&&e.skipEmptyTextNodesForObj&&(e.stripWhitespaces&&""==a.__text||""==a.__text.trim())&&delete a.__text:a=a.__cdata,delete a.__cnt,!e.enableToStringFunc||null==a.__text&&null==a.__cdata||(a.toString=function(){return(null!=this.__text?this.__text:"")+(null!=this.__cdata?this.__cdata:"")}),a}return t.nodeType==b.TEXT_NODE||t.nodeType==b.CDATA_SECTION_NODE?t.nodeValue:void 0}function _(t,n,r,i){var s="<"+(null!=t&&null!=t.__prefix?t.__prefix+":":"")+n;if(null!=r)for(var o=0;o<r.length;o++){var l=r[o],c=t[l];e.escapeMode&&(c=a(c)),s+=" "+l.substr(e.attributePrefix.length)+"=",s+=e.useDoubleQuotes?'"'+c+'"':"'"+c+"'"}return s+=i?"/>":">"}function d(e,t){return"</"+(null!=e.__prefix?e.__prefix+":":"")+t+">"}function p(e,t){return-1!==e.indexOf(t,e.length-t.length)}function m(t,n){return"property"==e.arrayAccessForm&&p(n.toString(),"_asArray")||0==n.toString().indexOf(e.attributePrefix)||0==n.toString().indexOf("__")||t[n]instanceof Function?!0:!1}function x(e){var t=0;if(e instanceof Object)for(var n in e)m(e,n)||t++;return t}function g(t,n,r){return 0==e.jsonPropertiesFilter.length||""==r||s(e.jsonPropertiesFilter,t,n,r)}function h(t){var n=[];if(t instanceof Object)for(var r in t)-1==r.toString().indexOf("__")&&0==r.toString().indexOf(e.attributePrefix)&&n.push(r);return n}function v(t){var n="";return null!=t.__cdata&&(n+="<![CDATA["+t.__cdata+"]]>"),null!=t.__text&&(n+=e.escapeMode?a(t.__text):t.__text),n}function y(t){var n="";return t instanceof Object?n+=v(t):null!=t&&(n+=e.escapeMode?a(t):t),n}function O(e,t){return""===e?t:e+"."+t}function E(e,t,n,r){var i="";if(0==e.length)i+=_(e,t,n,!0);else for(var a=0;a<e.length;a++)i+=_(e[a],t,h(e[a]),!1),i+=N(e[a],O(r,t)),i+=d(e[a],t);return i}function N(e,t){var n="",r=x(e);if(r>0)for(var i in e)if(!m(e,i)&&(""==t||g(e,i,O(t,i)))){var a=e[i],s=h(a);if(null==a||void 0==a)n+=_(a,i,s,!0);else if(a instanceof Object)if(a instanceof Array)n+=E(a,i,s,t);else if(a instanceof Date)n+=_(a,i,s,!1),n+=a.toISOString(),n+=d(a,i);else{var o=x(a);o>0||null!=a.__text||null!=a.__cdata?(n+=_(a,i,s,!1),n+=N(a,O(t,i)),n+=d(a,i)):n+=_(a,i,s,!0)}else n+=_(a,i,s,!1),n+=y(a),n+=d(a,i)}return n+=y(e)}var T="1.2.0";e=e||{},t(),n();var b={ELEMENT_NODE:1,TEXT_NODE:3,CDATA_SECTION_NODE:4,COMMENT_NODE:8,DOCUMENT_NODE:9};this.parseXmlString=function(e){window.ActiveXObject||"ActiveXObject"in window;if(void 0===e)return null;var t;if(window.DOMParser){var n=new window.DOMParser;try{t=n.parseFromString(e,"text/xml"),t.getElementsByTagNameNS("*","parsererror").length>0&&(t=null)}catch(r){t=null}}else 0==e.indexOf("<?")&&(e=e.substr(e.indexOf("?>")+2)),t=new ActiveXObject("Microsoft.XMLDOM"),t.async="false",t.loadXML(e);return t},this.asArray=function(e){return void 0===e||null==e?[]:e instanceof Array?e:[e]},this.toXmlDateTime=function(e){return e instanceof Date?e.toISOString():"number"==typeof e?new Date(e).toISOString():null},this.asDateTime=function(e){return"string"==typeof e?l(e):e},this.xml2json=function(e){return f(e)},this.xml_str2json=function(e){var t=this.parseXmlString(e);return null!=t?this.xml2json(t):null},this.json2xml_str=function(e){return N(e,"")},this.json2xml=function(e){var t=this.json2xml_str(e);return this.parseXmlString(t)},this.getVersion=function(){return T}}});