首页 > 解决方案 > 修剪标签内的空格?

问题描述

我正在使用 xmllint 重新格式化一些 xml。我注意到它似乎只留下封闭的文字。例如,这个

<tag>
<p>
<i>
test
</i>
</p>
</tag>

变成这个

<tag>
    <p>
        <i>
test
</i>
    </p>
</tag>

有没有办法强制它把文本放在开始标签之后,然后紧跟在结束标签后面?理想情况下,我想要这样的东西:

<tag>
    <p>
        <i>test</i>
    </p>
</tag>

我想这相当于让它忽略标签内的前导和尾随空格。我可以通过正则表达式进行一些预处理,但是有什么本地方法吗?

TIA。

标签: xmllint

解决方案


你应该能够使用tidy这个:

echo '<tag>
<p>
<i>
test
</i>
</p>
</tag>' |    tidy -xml -iq

输出:

<标签>
  <p>
    <i>测试</i>
  </p>
</tag>

推荐阅读