xmllint:格式化而不添加 header

xmllint: Formating without adding header

有没有办法在没有 header 部分的情况下使用 $xmllint --format file

<?xml version="1.0"?>
<Tag>
  <Sub>A</Sub>
</Tag>

我知道您可以使用 --c14n,但这似乎与 --format 不能很好地融合。 因为 $xmllint --format --c14n file 只会产生:

<Tag><Sub>A</Sub></Tag>

想要的结果

<Tag>
  <Sub>A</Sub>
</Tag>

您可以使用 sed 删除第一行。不是说它是最好的,但它会让你前进:

xmllint --format <file> | sed 1d

您最好尽量避免对 xmllint 进行一百万次调用。和 sed 或尾巴。

我不确定 xmllint 是否支持就地编辑。但如果它确实如此,那么这样的事情可能是可能的:

xargs < list_of_files_to_change.txt xmllint --inplace --format
xargs < list_of_files_to_change.txt sed -i 1d