我需要去除文檔中的所有字體標籤。當試圖用下面的Ruby代碼來實現時,字體標籤中的其他元素和文本會丟失。我還嘗試遍歷所有子元素,並在解除字體標記之前使它們成爲字體標記的兄弟,這也會導致HTML丟失。去除可以包含其他元素和/或文本的標籤的好方法是什麼?如何使用Nokogiri從HTML中刪除不需要的標籤?
doc.css('font').each do |element|
element.unlink
end
UPDATE(響應於第一溶液):
使用node.children獲得孩子,然後移動孩子到字體節點的父節點的問題是,沒有一個孩子節點包括在字體節點中找到的文本。只要字體標籤被刪除(取消鏈接),字體標籤中的所有文本也會從文檔中消失。
我修改後的問題是:我如何使用Nokogiri來獲取字體節點的文本,以及如何在字體節點的位置上移動此文本以替換字體標記。
謝謝。這與所需要的非常接近。使用HTML內容時,節點的排序很重要。將節點附加到父節點可能最終會導致節點不處於原始順序。 – sutch 2010-03-17 22:38:20