关于linux:使用xmllint格式化apache2虚拟主机conf

Format apache2 virtual host conf using xmllint

我想智能地缩进我的Apache2虚拟主机配置文件。我在这里找到了如何智能地缩进XML文件。但是虚拟主机配置文件不是有效的XML文件。

例如,如果我尝试在Apache2存储库中给定的000-default.conf上使用xmlint,我会得到一个错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
$ cat 000-default.conf | xmllint --format -
-:1: parser error : error parsing attribute name
<VirtualHost *:80>
             ^
-:1: parser error : attributes construct error
<VirtualHost *:80>
             ^
-:1: parser error : Couldn't find end of Start Tag VirtualHost line 1
<VirtualHost *:80>
             ^
-:1: parser error : Extra content at the end of the document
<VirtualHost *:80>
             ^

有人知道如何处理这个问题吗?


如您所说,Apache2配置文件不是XML文件。xmllint是一个重新格式化XML文件的程序。它不能在Apache2配置文件上工作。因此,不要在apache2配置文件上使用xmllint,这样可以避免上面突出显示的错误。

您最好使用一个编辑器(参见这里的EmacsApache2模式),或者一个为重新格式化Apache2配置文件而编写的程序。