저는 Emeditor를 사용하지만 XML 문서를 읽을 때 혼란스러운 형식 때문에 항상 명확하게 보입니다. 이것은 자동으로 XML 형식을 지정하는 편집자 매크로입니다. 다운로드: formatXml.rar (1,021.00 bytes)다음 단락은 이 웹페이지의 javascript 형식의 XML 코드입니다. 코드 복사 코드는 다음과 같습니다. Xml格式化工具 <br> String.prototype.removeLineEnd = function()<br> {<br> return this.replace(/(<. ?s ?)(?:ns*?(. ?=".*?" ))/g,'$1 $2')<BR> }<BR> 함수 formatXml(text)<BR> {<BR> //去掉多余적 공格<BR> text = 'n' text.replace(/(< ;w )(s.*?>)/g,function($0, name, props)<br> {<br> 반환 이름 ' ' props.replace(/s (w =)/g," $1") ;<br> }).replace(/>s*?</g,">n<");<br><br> //把注释编码<BR> text = text.replace(/n /g,'r').replace(/<!--(. ?)-->/g,function($0, text)<br> {<br> var ret = '<!--' escape(text) '-->';<br> //alert(ret);<br> return ret;<br> }).replace(/r/g,'n');<br><br> //调整格式<br> var rgx = /n(<(([^?]). ?)(?:s|s*?>|s*?(/)>)(?:.*?(?:(?:(/)>)|(?:<(/)2> ;)))?)/mg;<BR> var nodeStack = [];<BR> var 출력 = text.replace(rgx,function($0,all,name,isBegin,isCloseFull1,isCloseFull2 ,isFull1,isFull2){<BR> var isClosed = (isCloseFull1 == '/') || (isCloseFull2 == '/') || (isFull2 == '/');<BR> //경고 ([all,isClosed].join('='));<BR> var prefix = '';<BR> if(isBegin == '!')<BR> {<BR> prefix = getPrefix(nodeStack.length );<BR> }<BR> else <BR> {<BR> if(isBegin != '/')<BR> {<BR> 접두어 = getPrefix(nodeStack.length);<BR> if(!isClosed) <BR> {<BR> nodeStack.push(이름);<BR> }<BR> }<BR> else<BR> {<BR> nodeStack.pop();<BR> 접두어 = getPrefix(nodeStack.length) ;<BR> }<br><br> }<BR> var ret = 'n' 접두사 all;<BR> return ret;<BR> });<br><br> var prefixSpace = -1;<BR> var outputText = 출력.sub 문자열(1);<BR> //alert(outputText);<br><br> //把注释还原并解码,调格式<BR> outputText = outputText.replace(/n/g,'r').replace(/(s* )<!--(. ?)-->/g,function($0, 접두사, 텍스트)<br> {<br> //alert(['[',prefix,']=',prefix. length].join(''));<br> if(prefix.charAt(0) == 'r')<br> 접두사 = prefix.substring(1);<br> text = unescape(text).replace (/r/g,'n');<br> var ret = 'n' 접두사 '<!--' text.replace(/^s*/mg, 접두사 ) '-->';<br> //alert(ret);<br> return ret;<br> });<br><br> return outputText.replace(/s $/g,'').replace(/r/g,'rn ');<br> }<br> function getPrefix(prefixIndex)<br> {<br> varspan = ' ';<br> var 출력 = [];<br> for(var i = 0 ; i < prefixIndex; i)<BR> {<BR> output.push(span);<BR> }<br><br> return output.join('');<BR> } <BR> 함수 bt nFormat_click()<BR> {<BR> var $ = document.getElementById;<BR> $('output').value = formatXml($('input').value);<BR> }<br><br> < ;/textarea>