我正在输出所有粉碎的html,并希望将其转换为适当的缩进。我一直在尝试使用xmllint,但没有喜悦。例如。当它在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)工具吗?谢谢......
答案 0 :(得分:4)
用户4M01建议:在命令行中,通过调用HTML tidy附加管道。
xmllint 的HTML输出将被修复;整理将围绕你的html片段包装一些合理的。
xmllint --xpath "//tr[6]/td[7]" --html - | tidy -q
答案 1 :(得分:2)
我认为这是因为您提供的HTML没有根标记,从而使其成为无效的XML。
尝试添加body标签并再次运行xmllint。
<body><table><tr><td><b>Foo</b></td></tr></table>
<table><tr><td>Bar</td></tr></table></body>
答案 2 :(得分:2)
tidy -i
设置indent: auto
配置值。如果不是自动我将它设置为yes
,我一直有更好的缩进风格:
tidy --indent yes
答案 3 :(得分:1)
你试过HTML Tidy吗?有关这方面的更多信息,请访问 W3&amp; sourceforge。即使有可用的GUI工具,也称为GuiTidy。这个工具很棒,它们不仅有助于正确缩进,还可以验证HTML代码。
希望这个帮助