xml(ExtensibleMarkupLanguage)也是一种人类可读的标记语言,但是和json文件一样,没有xml文件的缩进(或压缩)。挺头疼的。首先我们来看一下本文要实现的目标,如下图所示:为了实现这个效果,我们总结了三种方法。作为演示示例,我们使用以下文件email.xml:SagarMilan最近写了很多SagarArvind嘿嘿,尽快把果阿图片发给我!方法一:使用xmllint格式化打印xmlxmllint工具提供--format选项,允许用户重新格式化xml文件。显示以下语法:xmllint例如,作为演示,我们使用email.xml:xmllint--formatemail.xml格式化输出,默认缩进两个空格。如果想改成更多的空格(比如4个空格),可以使用环境变量XMLLINT_INDENT。比如我们以email.xml为例,缩进4个空格:XMLLINT_INDENT=""结合前面的例子,你能看出区别吗?方法2:使用XMLStarlet工具包XMLStarlet提供了一组命令,每个命令用于不同的目的。其中涉及到xml命令,可用于执行与xml文件相关的操作。但是在使用之前需要手动安装,如下:sudo需要对输出的xml进行格式化,需要使用xml命令的format选项,如下图:xmlformatemail.xml另外,它还提供其他一些选项,如下:-n不加空格,结果类似于文本左对齐;-t标记输出以提高可读性;-o省略xml生命,除了在文件顶部添加;-s添加任意数量的空格。比如我们用fo加6个空格格式化输出的xml文件:xmlfo-s6email.xml方法三:使用xml_pp命令这种方法不太灵活,因为xml_pp是Perl的一个模块,叫做XML::树枝。它不输出内容,而是直接修改源文件。它还需要手动安装才能使用。如果您使用的是基于Debian的系统,请使用以下命令:sudoaptinstallxml-twig-tools例如,我们使用记录模式来格式化输出的email.xml:这里,-i选项用于更改原始文件,也用于附加扩展名。-s选项是用来使用样式选项的,这里我用的是record。