Vim

install vim
yum install vim

create ~/.vimrc
touch ~/.vimrc

add vim format xml

 * http://vim.wikia.com/wiki/Pretty-formatting_XML
 * add below content to ~/.vimrc, use :FormatXML to format xml

function! DoPrettyXML " save the filetype so we can restore it later let l:origft = &ft  set ft=  " delete the xml header if it exists. This will " permit us to surround the document with fake tags " without creating invalid xml. 1s///e " insert fake tags around the entire document. " This will permit us to pretty-format excerpts of  " XML that may contain multiple top-level elements.  0put =''  $put =''  silent %!xmllint --format -  " xmllint will insert an  header. it's easy enough to delete " if you don't want it. " delete the fake tags 2d $d " restore the 'normal' indentation, which is one extra level " too deep due to the extra tags we wrapped around the document. silent %< " back to home 1  " restore the filetype exe "set ft=". l:origft endfunction command! PrettyXML call DoPrettyXML

" XML formatter function! DoFormatXML range 	" Save the file type let l:origft = &ft " Clean the file type 	set ft= 	" Add fake initial tag (so we can process multiple top-level elements) exe ":let l:beforeFirstLine=". a:firstline. "-1" 	if l:beforeFirstLine < 0 let l:beforeFirstLine=0 endif exe a:lastline. "put =''" exe l:beforeFirstLine. "put =''" exe ":let l:newLastLine=". a:lastline. "+2" 	if l:newLastLine > line('$') let l:newLastLine=line('$') endif " Remove XML header 	exe ":" . a:firstline . "," . a:lastline . "s/<\?xml\\_.*\?>\\_s*//e" 	" Recalculate last line of the edited code let l:newLastLine=search('') " Execute external formatter 	exe ":silent " . a:firstline . "," . l:newLastLine . "!xmllint --noblanks --format --recover -" 	" Recalculate first and last lines of the edited code let l:newFirstLine=search('') let l:newLastLine=search('') " Get inner range 	let l:innerFirstLine=l:newFirstLine+1 	let l:innerLastLine=l:newLastLine-1 	" Remove extra unnecessary indentation exe ":silent ". l:innerFirstLine. "," . l:innerLastLine "s/^ //e" " Remove fake tag 	exe l:newLastLine . "d" 	exe l:newFirstLine . "d" 	" Put the cursor at the first line of the edited code exe ":". l:newFirstLine " Restore the file type 	exe "set ft=" . l:origft endfunction command! -range=% FormatXML, call DoFormatXML nmap x :%FormatXML vmap  x :FormatXML