Skip navigation

Tag Archives: XML

Przeglądanie różnic między plikami bywa uciążliwe. Zwłaszcza gdy są to np. rozbudowane pliki xml, posiadające różnice w formatowaniu (np. różne znaki stosowane przy wcięciach, spacje przed znakiem ‘>’ itp.). Narzędzia typu diff lub nawet vimdiff nie zawsze bywały wystarczająco pomocne. W moim przypadku nawet program XMLSpy (skądinąd bardzo dobry edytor XML) nie prezentował różnic między takimi plikami wystarczająco czytelnie. Problem rozwiązał się gdy natknąłem się na program Meld (http://meldmerge.org/). Prosty, funkcjonalny, przejrzysty; posiadający ciekawą funkcję definiowania filtrów w postaci wyrażeń regularnych eliminujących całą linię (bądź tylko jej fragment) z procesu wyszukiwania różnic. dzięki niej można szybko wyspecyfikować te elementy pliku, które nie są dla nas istotne. Dla mnie bomba! :D

XML że względu na swoją budowę wymaga specyficznych narzędzi do obróbki. W linuksie mamy ich na szczęście kilka, a przy odrobinie wysiłku możemy napisać własne wykorzystując różne dostępne biblioteki czy moduły.

Pierwszym narzędziem na mojej liście jest xmllint. Spośród wielu opcji najczęściej wykorzystuję formatowanie XML’a:

bash$> cat test.xml | xmllint -format -

… oraz walidację względem pliku DTD bądź schematu:

bash$> xmllint --valid test.xml

Powyższe wywołanie sprawdzi poprawność pliku XML względem schematu/pliku DTD wskazanego wewnątrz pliku. Jeśli chcmy jawnie podać lokalizację schetu/DTD możemy wykorzystać opcje –dtdvalid URL lub –schema shcema-file.xsd. Oczywiście xmllint posiada wiele innych przydatnych opcji więc warto zerknąć do manuala.