我正在输出的html,这是所有的压缩在一起,并希望将其转换为有适当的缩进。我一直在尝试使用xmllint来解决这个问题,但是没有使用joy。例如,当它在file.html中时:
<table><tr><td><b>Foo</b></td></tr></table>
<table><tr><td>Bar</td></tr></table>我得到了:
$ xmllint --format file.html
file.html:2: parser error : Extra content at the end of the document
<table><tr><td>Bar</td></tr></table>
^
<<< exit status [1] >>>但是当file.html只包含这两行中的任何一行时,它都可以正常工作(删除第二行):
$ xmllint --format file.html
<?xml version="1.0"?>
<table>
<tr>
<td>
<b>Foo</b>
</td>
</tr>
</table>当我引入--html选项时,它更有可能运行时没有错误,但随后就不缩进了。
有什么建议吗?有没有其他(*nix)工具可以用来做这件事?谢谢..。
发布于 2012-02-13 23:15:15
我认为这是因为您提供的HTML没有根标记,因此使它成为无效的XML。
尝试添加body标记,然后对其再次运行xmllint。
<body><table><tr><td><b>Foo</b></td></tr></table>
<table><tr><td>Bar</td></tr></table></body>发布于 2013-01-03 23:15:55
正如用户4M01所建议的:在命令行上,在管道后面附加一个对HTML tidy的调用。
来自xmllint的HTML输出将被修复;tidy将包装一些合理的...围绕你的html片段。
xmllint --xpath "//tr[6]/td[7]" --html - | tidy -q发布于 2013-04-05 20:20:03
tidy -i设置indent: auto配置值。如果我将它设置为yes而不是auto,我会得到更好的缩进样式:
tidy --indent yes https://stackoverflow.com/questions/9197660
复制相似问题