Emeditor を使用していますが、XML ドキュメントを読むと、形式がわかりにくいため、いつもはっきりと見えます。これは、XML を自動的にフォーマットするための Emeditor マクロです。ダウンロード: formatXml.rar (1,021.00 バイト)次の段落は、この Web ページの JavaScript 形式の XML コードです。 コードをコピー コードは次のとおりです: Xml格式化ツール <br> String.prototype.removeLineEnd = function()<br> {<br> return this.replace(/(<.> }<br> function formatXml(text)<br> {<br> //去掉多余的空格<br> text = 'n' text.replace(/(< ;w )(s.*?>)/g,function($0, name, props)<br> {<br> return name ' ' 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 = '<!--' scape(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 Output = 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.長さ);<BR> }<BR> else <BR> {<BR> if(isBegin != '/')<BR> {<BR> prefix = getPrefix(nodeStack.length);<BR> if(!isClosed) <BR> {<BR> nodeStack.push(name);<BR> }<BR> }<BR> else<BR> {<BR> nodeStack.pop();<BR> prefix = getPrefix(nodeStack.length) ;<BR> }<br><br> }<BR> var ret = 'n' prefix all;<BR> return ret;<BR> });<br><br> var prefixSpace = -1;<BR> var OutputText =出力.substring(1);<BR> //alert(outputText);<br><br> //注释还原并解、调格式<BR> OutputText = OutputText.replace(/n/g,'r').replace(/(s* )<!--(. ?)-->/g,function($0, prefix, text)<br> {<br> //alert(['[',prefix,']=',prefix. length].join(''));<br> if(prefix.charAt(0) == 'r')<br> prefix = prefix.substring(1);<br> text = unescape(text).replace (/r/g,'n');<br> var ret = 'n' prefix '<!--' text.replace(/^s*/mg, prefix ) '-->';<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> var span = ' ';<BR> var Output = [];<BR> for(var i = 0 ; i < prefixIndex; i)<BR> {<BR> Output.push(span);<BR> }<br><br> return Output.join('');<BR> } <BR> btnFormat_click()<BR> {<BR> var $ = document.getElementById;<BR> $('output').value = formatXml($('input').value);<BR> }<br><br> < ;/textarea> gt;