是否有可能爲一個正則表達式來清理空白的HTML?從HTML清潔空白與正則表達式
例如:
<p><b>foo</b> <i>bar</i></p>
<p>foo</p> <p>bar</p>
在第一行中,關閉B和開口我標籤之間的空間是有效的(雖然它可能是一個
),然而在第二行它是空白,我希望清理,因爲它不應該有任何語義價值。
也許這將更好地與DOM遍歷解決了嗎?
是否有可能爲一個正則表達式來清理空白的HTML?從HTML清潔空白與正則表達式
例如:
<p><b>foo</b> <i>bar</i></p>
<p>foo</p> <p>bar</p>
在第一行中,關閉B和開口我標籤之間的空間是有效的(雖然它可能是一個
),然而在第二行它是空白,我希望清理,因爲它不應該有任何語義價值。
也許這將更好地與DOM遍歷解決了嗎?
看起來像HTML Tidy這樣的東西對於您所尋找的東西來說可能更好 - 而不是需要重新創建所有可能複雜的規則(例如您的示例中的第一個空格是重要的,但不是第2個等)
否則,我同意 - DOM遍歷會比正則表達式一個更好的方法 - 特別是如果你的HTML已經是XHTML標準,可以很容易地橫移爲XML。
首先我必須引用;) 「要求正則表達式解析任意HTML就像要求Paris Hilton編寫操作系統」 然後回到業務。 你可以嘗試不同的正則表達式來標記(雖然,我懷疑這是有效的方法):
sed -e 's/<p>\ </<p></g'
,消除<p>(whitespace)<(whatever_tag)
空白。
否則,我也同意DOM遍歷。
我有一個快速四處尋找一個JavaScript實現HTML整齊,但沒有運氣,所以DOM遍歷它。我需要這個儘可能快的運行,所以希望IE不會造成太多問題。 – Dave 2011-12-23 15:27:05
爲什麼還要頗費周折在JavaScript這樣做呢?誰將受益?所有的HTML都已經傳輸到客戶端並由瀏覽器呈現,因此您不會在帶寬或瀏覽器呈現方面保存任何內容。 – ziesemer 2011-12-23 15:30:34
然後,我多了一點額外的背景,我正在擺弄一個自滿的div和diff-match-patch庫。取決於contenteditable的瀏覽器實現,我得到不同數量的空白,導致在我來回瀏覽不同瀏覽器時導致無處不在的差異。我能想到的最簡單的解決方法是完全去除空白。 – Dave 2011-12-23 15:39:31