虽然 XML(可扩展标记语言)是一种人类可读的标记语言,但您很可能会发现 XML 文件的非结构化程度足以让您头疼!
但首先,让我分享您在本指南之后获得的最终结果:
为了实现这些结果,我编写了本指南,其中涉及三种格式化 XML 并使其可读的方法。
在终端中漂亮地打印 XML 文件
在完成该过程之前,让我分享一下我将在整个教程中使用的非结构化 XML:
<emails> <email> <from>Sagar</from> <to>Milan</to> <time>2022-10-14</time>
<subject>Writing a lot these days</subject></email> <email>
<from>Sagar</from> <to>Arvind</to> <time>2022-10-13</time> <subject>Heyy, send me the Goa pictures ASAP!</subject>
</email> </emails>
示例文件 email.xml 包含两封电子邮件,我将格式化此文件以减少我经常遇到的头痛! 所以让我们从第一个开始:
方法一:使用 xmllint 漂亮地打印 XML
这 xmllint 实用程序为我们提供了 --format
用户可以重新格式化他们的 XML 文件的选项。 要使用 xmllint 重新格式化 XML 文件,您只需遵循给定的语法:
xmllint --format XML_FILE
为了演示,我将使用 email.xml
文件:
xmllint --format email.xml
和 默认意图是添加两个空格 但是如果你想添加更多呢? 您可以使用 XMLLINT_INDENT
环境变量。
为了 example,我将在我的 email.xml 中添加四个空格:
XMLLINT_INDENT=" " xmllint --format email.xml

看出区别了吗?
方法二:使用 XMLStarlet 工具包
这 XMLStarlet 是一组用于不同目的的命令行实用程序。 它利用 xml
您可以通过该命令执行几乎所有与 XML 文件相关的操作!
但它需要手动安装,并且有一个 snap 包可以帮助您入门:
sudo snap install xmlstarlet
要格式化您的 XML 文件,您只需配对 format
选项与 xml
命令如下图:
xml format email.xml

正如我之前提到的,它为我们提供了各种选项,并且有四个格式化选项:
-n
不会打算输出。 这意味着它不会添加空格,并且结果将类似于将文本向左对齐时的结果。-t
将使用选项卡的输出以获得更好的可见性。-o
省略 XML 声明。 无非是加<?xml version=”1.0″?>
在 XML 文件的顶部。-s
增加了空间。 所以你可以决定你想要的空间斯托克斯的数量!
为了 example,我将添加六个空间打算使用 fo
允许格式化:
xml fo -s 6 email.xml

方法 3:使用 xml_pp 命令
在格式化 XML 文件时,这是最不灵活的选项,因为 xml_pp 是名为的 Perl 模块的一部分 XML::Twig
.
这是修改本身是专业的直接文件的唯一选项。 不是吗?
但它需要手动安装,如果您使用的是基于 Debian 的发行版,给定的命令将完成您的工作:
sudo apt install xml-twig-tools
为了 example,我将使用 record
格式化样式 email.xml
:

在这里, -i
用于在原始文件中进行更改,同时用于附加扩展名。
和 -s
选项是使用样式选项,我选择了样式名称 record
.
最后的话
通过本指南,我解释了如何格式化 XML 文件,使其更具可读性。
如果您有任何疑问,请在评论部分设置样式。