javascriptxml格式化

相关标签: # 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);
? }
?
?
文章来源: https://blog.51cto.com/yetaotao/5796250
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报