返回

javascriptxml格式化

发布时间:2022-10-29 02:23:07 331
# javascript# java# java# 工具
使用得是Emeditor ,在看XML文档时,总是因为格式混乱而看不清。这个是一个Emeditor宏来自动格式化XML。下载:formatXml.rar (1,021.00 bytes)
  下面这段是这个网页版的javascript格式化XML的代码。
  ?
Xml格式化工具
  ?
  ? String.prototype.removeLineEnd=function()
  ? {
  ? return this.replace(/(<.>
  \s*?(.+?=".*?"))/g,'$1 $2')
  ? }
  ? function formatXml(text)
  ? {
  ? //去掉多余的空格
  ? text='
  ' + text.replace(/()/g,function($0, name, props)
  ? {
  ? return name + ' ' + props.replace(/\s+(\w+=)/g," $1");
  ? }).replace(/>\s*?
  ? //把注释编码
  ? text=text.replace(/
  /g,'\r').replace(//g,function($0, text)
  ? {
  ? var ret='';
  ? //alert(ret);
  ? return ret;
  ? }).replace(/\r/g,'
  ');
  ? //调整格式
  ? var rgx=/
  (|\s*?(/)>)(?:.*?(?:(?:(/)>)|(?:)))?)/mg;
  ? var nodeStack=[];
  ? var output=text.replace(rgx,function($0,all,name,isBegin,isCloseFull1,isCloseFull2 ,isFull1,isFull2){
  ? var isClosed=(isCloseFull1=='/') || (isCloseFull2=='/' ) || (isFull1=='/') || (isFull2=='/');
  ? //alert([all,isClosed].join('='));
  ? var prefix='';
  ? if(isBegin=='!')
  ? {
  ? prefix=getPrefix(nodeStack.length);
  ? }
  ? else?
  ? {
  ? if(isBegin !='/')
  ? {
  ? prefix=getPrefix(nodeStack.length);
  ? if(!isClosed)
  ? {
  ? nodeStack.push(name);
  ? }
  ? }
  ? else
  ? {
  ? nodeStack.pop();
  ? prefix=getPrefix(nodeStack.length);
  ? }
  ? }
  ? var ret=? '
  ' + prefix + all;
  ? return ret;
  ? });
  ? var prefixSpace=-1;
  ? var outputText=output.substring(1);
  ? //alert(outputText);
  ? //把注释还原并解码,调格式
  ? outputText=outputText.replace(/
  /g,'\r').replace(/(\s*)/g,function($0, prefix,? text)
  ? {
  ? //alert(['[',prefix,']=',prefix.length].join(''));
  ? if(prefix.charAt(0)=='\r')
  ? prefix=prefix.substring(1);
  ? text=unescape(text).replace(/\r/g,'
  ');
  ? var ret='
  ' + prefix + '';
  ? //alert(ret);
  ? return ret;
  ? });
  ? return outputText.replace(/\s+$/g,'').replace(/\r/g,'\r
  ');
  ? }
  ? function getPrefix(prefixIndex)
  ? {
  ? var span='? ';
  ? var output=[];
  ? for(var i=0 ; i < prefixIndex; ++i)
  ? {
  ? output.push(span);
  ? }
  ? return output.join('');
  ? }
  ? function btnFormat_click()
  ? {
  ? var $=document.getElementById;
  ? $('output').value=formatXml($('input').value);
  ? }
  ?

  ?
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
notepad xml插件下载 2022-10-29 01:34:55