CLI工具,用于格式化XML文件,保留空行和注释
是否有针对Linux的CLI工具可以格式化XML文件并保留任何空行和注释?我尝试过CLI工具,用于格式化XML文件,保留空行和注释,xml,linux,format,command-line-interface,pretty-print,Xml,Linux,Format,Command Line Interface,Pretty Print,是否有针对Linux的CLI工具可以格式化XML文件并保留任何空行和注释?我尝试过xmllint、tidy和xmlstarlet,但它们似乎都专注于彻底清理XML文件,而不仅仅是缩进和间距。尝试xmlindent。它有几个选项,如-nbe和-nba以及其他配置前后空间处理的选项 给定一个 <?xml version="1.0"?> <Response> <TroubleResponse> <Check> <DStatu
xmllint
、tidy
和xmlstarlet
,但它们似乎都专注于彻底清理XML文件,而不仅仅是缩进和间距。尝试xmlindent
。它有几个选项,如-nbe
和-nba
以及其他配置前后空间处理的选项
给定一个
<?xml version="1.0"?>
<Response>
<TroubleResponse>
<Check>
<DStatus>
<GID>123456789</GID>
<FLAG/>
</DStatus>
</Check>
<RAM>
<Details>
<RAMID>5555777788
</RAMID>
</Details>
</RAM>
<RAM>
<Details>
<RAMID>
5555777788</RAMID>
</Details>
</RAM>
</TroubleResponse>
</Response>
因此xmldindent-f
和xmldindent-nba
将产生以下输出:
<?xml version="1.0"?>
<Response>
<TroubleResponse>
<Check>
<DStatus>
<GID>123456789 <!-- Change -->
</GID>
<FLAG/>
</DStatus>
</Check>
<RAM>
<Details>
<RAMID>5555777788
</RAMID>
</Details>
</RAM>
<RAM>
<Details>
<RAMID> <!-- Change -->
5555777788
</RAMID>
</Details>
</RAM>
</TroubleResponse>
</Response>
<?xml version="1.0"?>
<Response>
<TroubleResponse>
<Check>
<DStatus>
<GID>123456789</GID>
<FLAG/>
</DStatus>
</Check>
<RAM>
<Details>
<RAMID>5555777788
</RAMID>
</Details>
</RAM>
<RAM>
<Details>
<RAMID> <!-- Change -->
5555777788</RAMID>
</Details>
</RAM>
</TroubleResponse>
</Response>
xmlindent
并不完美,因为它似乎并不总能实现预期的结果,但它可以进行某种配置。您能举一个您想要实现的示例吗?用于编程问题,而不是关于使用或配置Linux及其应用程序的问题。或者更适合提出这样的问题。不知道为什么会被否决。linter、代码格式化程序和co肯定与编程有关。这是对CLI工具的请求,因此与堆栈溢出无关。非常感谢xmlindent-nbe
做我想做的事。
<?xml version="1.0"?>
<Response>
<TroubleResponse>
<Check>
<DStatus>
<GID>123456789</GID>
<FLAG/>
</DStatus>
</Check>
<RAM>
<Details>
<RAMID>5555777788
</RAMID>
</Details>
</RAM>
<RAM>
<Details>
<RAMID> <!-- Change -->
5555777788</RAMID>
</Details>
</RAM>
</TroubleResponse>
</Response>