簡體   English   中英

如何使用xmllint縮進html?

[英]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嗎? 有關這方面的更多信息,請訪問W3sourceforge 。即使有GUI工具,也稱為GuiTidy 這個工具很棒,它們不僅有助於正確縮進,還可以驗證HTML代碼。

希望這有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM