텍스트/내용이있는 마지막 태그 위 및 뒤에 빈 공백을 잘라야합니다. 클라이언트에 표시되는 내용을 제어하고 비주얼을 "중단"하지 않으려합니다.HTML에서 빈 태그의 머리와 꼬리는 어떻게 트리밍합니까?
<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를 사용하고 있는데 그것은 transfomer 전달되는 기능을 가지고 있습니다. 문서에 example snippet이 있으면 모든 빈 요소가 제거됩니다. 나는 반복한다, 꼬리 빈 요소를 제거하기 위해 지금
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
}
하지만, :
내가이 빈 태그를 제거 멈출 때 제어 변수를 할당 할 수 있다고 생각, 정규 요소 앞에 빈 요소를 제거하려면 거꾸로. 그러나 살균제는 나에게이 능력을주지 않는다.누구든지이 작업을 수행하는 방법을 알고 있거나 이미 구현 한 사람이 있습니까?
변환 전후에이 HTML을 어떻게 표시해야할까요? –
첫 번째 코드 예입니다. 모든 "~ 제거"는 변환 후에 제거되어야합니다. – Luccas
[Nokogiri] (http://nokogiri.org)에서이 작업을 수행하는 것이 좋습니다. Sanitize는 필요한 논리를 실제로 처리하지 않습니다. BTW, Sanitize는 Nokogiri를 내부적으로 사용합니다. 올바르게 기억한다면 Nokogiri의 힘을 알 수 있습니다. –