如何在Linux中格式化XML文档

我有大量以下的XML标签。

<SERVICE> <NAME> sh_SEET15002GetReKeyDetails </NAME> <ID>642</ID> </SERVICE> 

我想以下面的方式得到这个格式。 我曾尝试使用xmllint,但它不适合我。 请提供帮助。

 <SERVICE> <NAME>sh_SEET15002GetReKeyDetails</NAME> <ID>642</ID> </SERVICE> 

如果没有编程,可以使用Eclipse XML Source Editor 。 看看这个答案

顺便说一下你有没有尝试过xmllint -format -recover nonformatted.xml > formated.xml

编辑:

你可以试试这个XMLStarlet命令行XML工具包 。

 5. Formatting XML documents ==================================================== xml fo --help XMLStarlet Toolkit: Format XML document Usage: xml fo [<options>] <xml-file> where <options> are -n or --noindent - do not indent -t or --indent-tab - indent output with tabulation -s or --indent-spaces <num> - indent output with <num> spaces -o or --omit-decl - omit xml declaration <?xml version="1.0"?> -R or --recover - try to recover what is parsable -D or --dropdtd - remove the DOCTYPE of the input docs -C or --nocdata - replace cdata section with text nodes -N or --nsclean - remove redundant namespace declarations -e or --encode <encoding> - output in the given encoding (utf-8, unicode...) -H or --html - input is HTML -h or --help - print help 
 xmllint –format –recover nonformatted.xml > formated.xml 

对于制表符缩进:

 export XMLLINT_INDENT=`echo -e '\t'`