有很多關於如何使用Ruby從文檔去除HTML標籤的例子,Hpricot和Nokogiri都有inner_text方法,可以方便快捷地爲您移除所有的HTML。使用Ruby去除HTML文檔中的文本
我想要做的是相反的,從HTML文檔中刪除所有文本,只留下標籤及其屬性。
我認爲循環遍歷文檔設置inner_html爲零,但然後真的,你必須做相反的第一個元素(根)有一個inner_html文檔的其餘部分,所以理想情況下,我會有從最內層的元素開始,並將inner_html設置爲零,同時通過祖先移動。
有沒有人知道這樣做有效的一個整潔的小技巧?我想也許正則表達式可能會這樣做,但可能不如HTML標記器/解析器可能有效。
你將不得不面對糟糕的標記嗎? (未轉義的實體等) – Neall 2009-09-30 11:57:32
這是可能的 - 我正在處理的標記來自最終用戶,因此無法依賴。 – davidsmalley 2009-09-30 13:09:28