[英]How to indent html with xmllint?
我正在輸出所有粉碎的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)工具嗎? 謝謝 ...
用戶4M01建議:在命令行中,通過調用HTML tidy附加管道。
xmllint的 HTML輸出將被修復; 整理將圍繞你的html片段包裝一些合理的...
xmllint --xpath "//tr[6]/td[7]" --html - | tidy -q
tidy -i
設置indent: auto
配置值。 如果不是自動我把它設置為yes
,我一直有更好的縮進風格:
tidy --indent yes
我認為這是因為您提供的HTML沒有根標記,因此使其成為無效的XML。
嘗試添加body標簽並再次運行xmllint。
<body><table><tr><td><b>Foo</b></td></tr></table>
<table><tr><td>Bar</td></tr></table></body>
你試過HTML Tidy嗎? 有關這方面的更多信息,請訪問W3和sourceforge 。即使有GUI工具,也稱為GuiTidy 。 這個工具很棒,它們不僅有助於正確縮進,還可以驗證HTML代碼。
希望這有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.