我需要用文本/内容修剪最后一个标签上方和之后的空白。我想控制显示给客户端的内容,而不是“破坏”视觉效果。
<p> <br> </p> ~> remove
<p> <br> </p> ~> remove
<p> Text <p>
<p> <br> </p> ~> should preserve only this of the empty tags
<p> Text </p>
<p> Text </p>
<p> <br> </p> ~> remove
<p> <br> </p> ~> remove
<p> <br> </p> ~> remove
我正在使用Sanitize,它具有通过变压器的能力。该文档显示了一个示例片段以删除所有空元素。
要在任何常规元素之前删除空元素,我想我可以分配一个变量来控制它何时停止删除空标签:
should_remove_empty = true
lambda {|env|
node = env[:node]
return unless node.elem?
unless node.children.any?{|c| c.text? && c.content.strip.length > 0 || !c.text? }
node.unlink if should_remove_empty
else
should_remove_empty = false
end
}
但是现在,要删除尾部的空元素,我应该将它倒过来迭代。但是消毒并没有给我这种能力。
有谁知道如何做到这一点,或者有人已经实施了吗?