11.10. Kompresowanie białych znaków w dokumencie XML
Problem
Parser biblioteki REXML traktuje wszystkie białe znaki w węzłach tekstowych na równi z innymi znakami. Chcielibyśmy zmniejszyć rozmiar dokumentu, usuwając z niego niepotrzebne białe znaki.
Rozwiązanie
Można nakazać parserowi kompresowanie ciągów białych znaków, specyfikując stosowną opcję w wywołaniu konstruktora Document.new
:
require 'rexml/document' text = %{<doc><a>Kilka białych znaków</a> <b>I tu też</b></doc>} REXML::Document.new(text, { :compress_whitespace => :all }).to_s # => "<doc><a>Kilka białych znaków</a> <b>I tu też</b></doc>"
Dyskusja
Niekiedy białe znaki w dokumencie XML są istotne, zwykle jednak (zwłaszcza w przypadku stron WWW) można zastępować ich ...
Get Ruby. Receptury now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.