/* xml2json v 1.1 copyright 2005-2007 Thomas Frank This program is free software under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. It is distributed without any warranty. */ xml2json={ parser:function(xmlcode,ignoretags,debug){ if(!ignoretags){ignoretags=""}; xmlcode=xmlcode.replace(//s*//>/g,'/>'); xmlcode=xmlcode.replace(/</?[^>]*>/g,"").replace(/</![^>]*>/g,""); if (!ignoretags.sort){ignoretags=ignoretags.split(",")}; var x=this.no_fast_endings(xmlcode); x=this.attris_to_tags(x); x=escape(x); x=x.split("%3C").join("<").split("%3E").join(">").split("%3D").join("=").split("%22").join("/""); for (var i=0;i<ignoretags.length;i++){ x=x.replace(new RegExp("<"+ignoretags[i]+">","g"),"*$**"+ignoretags[i]+"**$*"); x=x.replace(new RegExp("</"+ignoretags[i]+">","g"),"*$***"+ignoretags[i]+"**$*") }; x='<JSONTAGWRAPPER>'+x+'</JSONTAGWRAPPER>'; this.xmlobject={}; var y=this.xml_to_object(x).jsontagwrapper; if(debug){y=this.show_json_structure(y,debug)}; return y }, xml_to_object:function(xmlcode){ var x=xmlcode.replace(/<///g,"?"); x=x.split("<"); var y=[]; var level=0; var opentags=[]; for (var i=1;i<x.length;i++){ var tagname=x[i].split(">")[0]; opentags.push(tagname); level++ y.push(level+"<"+x[i].split("?")[0]); while(x[i].indexOf("?+opentags[opentags.length-1]+>")>=0){level--;opentags.pop()} }; var oldniva=-1; var objname="this.xmlobject"; for (var i=0;i<y.length;i++){ var preeval=""; var niva=y[i].split("<")[0]; var tagnamn=y[i].split("<")[1].split(">")[0]; tagnamn=tagnamn.toLowerCase(); var rest=y[i].split(">")[1]; if(niva<=oldniva){ var tabort=oldniva-niva+1; for (var j=0;j<tabort;j++){objname=objname.substring(0,objname.lastIndexOf("."))} }; objname+="."+tagnamn; var pobject=objname.substring(0,objname.lastIndexOf(".")); if (eval("typeof "+pobject) != "object"){preeval+=pobject+"={value:"+pobject+"};/n"}; var objlast=objname.substring(objname.lastIndexOf(".")+1); var already=false; for (k in eval(pobject)){if(k==objlast){already=true}}; var onlywhites=true; for(var s=0;s<rest.length;s+=3){ if(rest.charAt(s)!="%"){onlywhites=false} }; if (rest!="" && !onlywhites){ if(rest/1!=rest){ rest="'"+rest.replace(//'/g,"//'")+"'"; rest=rest.replace(//*/$/*/*/*/g,"</"); rest=rest.replace(//*/$/*/*/g,"<"); rest=rest.replace(//*/*/$/*/g,">") } } else {rest="{}"}; if(rest.charAt(0)=="'"){rest='unescape('+rest+')'}; if (already && !eval(objname+".sort")){preeval+=objname+"=["+objname+"];/n"}; var before="=";after=""; if (already){before=".push(";after=")"}; var toeval=preeval+objname+before+rest+after; eval(toeval); if(eval(objname+".sort")){objname+="["+eval(objname+".length-1")+"]"}; oldniva=niva }; return this.xmlobject }, show_json_structure:function(obj,debug,l){ var x=''; if (obj.sort){x+="[/n"} else {x+="{/n"}; for (var i in obj){ if (!obj.sort){x+=i+":"}; if (typeof obj[i] == "object"){ x+=this.show_json_structure(obj[i],false,1) } else { if(typeof obj[i]=="function"){ var v=obj[i]+""; //v=v.replace(//t/g,""); x+=v } else if(typeof obj[i]!="string"){x+=obj[i]+",/n"} else {x+="'"+obj[i].replace(//'/g,"//'").replace(//n/g,"//n").replace(//t/g,"//t").replace(//r/g,"//r")+"',/n"} } }; if (obj.sort){x+="],/n"} else {x+="},/n"}; if (!l){ x=x.substring(0,x.lastIndexOf(",")); x=x.replace(new RegExp(",/n}","g"),"/n}"); x=x.replace(new RegExp(",/n]","g"),"/n]"); var y=x.split("/n");x=""; var lvl=0; for (var i=0;i<y.length;i++){ if(y[i].indexOf("}")>=0 || y[i].indexOf("]")>=0){lvl--}; tabs="";for(var j=0;j<lvl;j++){tabs+="/t"}; x+=tabs+y[i]+"/n"; if(y[i].indexOf("{")>=0 || y[i].indexOf("[")>=0){lvl++} }; if(debug=="html"){ x=x.replace(/</g,"<").replace(/>/g,">"); x=x.replace(//n/g,"<BR>").replace(//t/g," ") }; if (debug=="compact"){x=x.replace(//n/g,"").replace(//t/g,"")} }; return x }, no_fast_endings:function(x){ x=x.split("/>"); for (var i=1;i<x.length;i++){ var t=x[i-1].substring(x[i-1].lastIndexOf("<")+1).split(" ")[0]; x[i]="></"+t+">"+x[i] } ; x=x.join(""); return x }, attris_to_tags: function(x){ var d=' ="/''.split(""); x=x.split(">"); for (var i=0;i<x.length;i++){ var temp=x[i].split("<"); for (var r=0;r<4;r++){temp[0]=temp[0].replace(new RegExp(d[r],"g"),"_jsonconvtemp"+r+"_")}; if(temp[1]){ temp[1]=temp[1].replace(/'/g,'"'); temp[1]=temp[1].split('"'); for (var j=1;j<temp[1].length;j+=2){ for (var r=0;r<4;r++){temp[1][j]=temp[1][j].replace(new RegExp(d[r],"g"),"_jsonconvtemp"+r+"_")} }; temp[1]=temp[1].join('"') }; x[i]=temp.join("<") }; x=x.join(">"); x=x.replace(/ ([^=]*)=([^ |>]*)/g,"><$1>$2</$1"); x=x.replace(/>"/g,">").replace(/"</g,"<"); for (var r=0;r<4;r++){x=x.replace(new RegExp("_jsonconvtemp"+r+"_","g"),d[r])} ; return x } }; if(!Array.prototype.push){ Array.prototype.push=function(x){ this[this.length]=x; return true } }; if (!Array.prototype.pop){ Array.prototype.pop=function(){ var response = this[this.length-1]; this.length--; return response } };
当运行我的项目包时,我有上面的标题错误,在我试图使用 npm安装xml2json 但是,我只有以下错误,你能给我建议或想法,从这个问题中走出来吗... 编辑:: 1 在我安装了更新的Visual Studio 2005到2012后,当我运行npm安装xml2json和npm安装xml2json--unsece-perm时,我得到下面的错误, 提前感谢,戈帕尔·R
我在网上搜索了一个解决方案,但没有找到。我是Node.js的新手,到目前为止,我安装的任何模块都没有任何问题。 只有从昨天当我已经搜索了一个xml模块node.js,它开始给我一个问题。 我已经更新了网络框架sdk并做了需要的事情,卸载了节点并再次安装了它,但仍然没有解决方案。 我尝试安装的模块是xml2json(npm install xml2json),错误如下: 守则: