11.3. Ekstrakcja informacji w trakcie analizy dokumentu XML
Podziękowania dla Roda Gaithera
Problem
Chcielibyśmy przetworzyć duży dokument XML bez potrzeby ładowania jego zawartości w całości do pamięci.
Rozwiązanie
Metoda REXML::Document.parse_stream
umożliwia szybkie i elastyczne skanowanie dużego dokumentu połączone z przetwarzaniem jego interesujących fragmentów.
Spójrzmy na poniższy dokument, stanowiący raport z działania hipotetycznego programu („demona”) uruchamiającego w sposób automatyczny różne zadania. Chcielibyśmy wydobyć z tego raportu informację o tych zadaniach, które zakończyły się niepowodzeniem (czyli te, dla których zwrócony kod error
jest różny od 0).
event_xml = %{ <events> <clean system="dev" start="01:35" end="01:55" ...
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.