Czym jest formatowanie XML?
XML (Extensible Markup Language) to tekstowy format ustandaryzowany przez W3C, używany do dokumentów strukturalnych i wymiany danych. Formatowanie — nazywane też pretty-printingiem lub upiększaniem — bierze poprawnie zbudowane źródło XML i ponownie wcina je tak, aby każdy element, atrybut, komentarz, instrukcja przetwarzania i sekcja CDATA były łatwe do przeglądania. Sparsowane drzewo dokumentu jest zachowywane dokładnie; zmienia się tylko biały znak pomiędzy elementami.
Jak działa formatowanie XML?
Twoje wejście jest przetwarzane w całości w przeglądarce za pomocą natywnych API DOMParser i XMLSerializer oraz niestandardowego rekurencyjnego wcinacza. Główne kroki to:
- Wejście jest odczytywane dosłownie z pola tekstowego — każdy bajt, który wkleiłeś, jest trzymany lokalnie w pamięci.
- Przeglądarka parsuje je za pomocą
new DOMParser().parseFromString(text, 'application/xml'). Jeśli wejście nie jest poprawnie zbudowane, parser osadza węzeł<parsererror>, którego tekstowa zawartość niesie wskazówki silnika dotyczące wiersza i kolumny — pojawiają się one dosłownie w pasku błędów. - Po udanym parsowaniu niestandardowy wcinacz przechodzi drzewo DOM w głąb, emitując każdy element, zestaw atrybutów, sekcję CDATA, komentarz i instrukcję przetwarzania we własnej linii na bieżącej głębokości. Samozamykające się puste znaczniki są honorowane, gdy opcja jest włączona.
- Tryb minifikacji odwraca przepływ:
XMLSerializer().serializeToString(doc)emituje formę jednoliniową, a następnie ostrożne wyrażenie regularne usuwa biały znak między elementami bez ruszania tekstu wewnątrz bloków CDATA czy niepustych węzłów tekstowych. - Wynik jest zapisywany do pola tekstowego tylko do odczytu, pasek błędów jest czyszczony, a przycisk Pobierz pakuje wynik jako plik
.xml, który możesz wysłać lub dołączyć do zgłoszenia.
Dlaczego pretty-printować XML tym narzędziem?
- Prywatność: każdy przebieg parsowania, formatowania i minifikacji odbywa się w Twojej przeglądarce. XML nigdy nie trafia na nasze serwery — bez uploadu, bez telemetrii, bez konta.
- Precyzyjne błędy: gdy wejście jest zniekształcone, parser pokazuje dokładny wiersz i kolumnę zgłaszane przez sam silnik przeglądarki, nie syntetyczne zgadywanie — te same liczby, jakie zobaczyłbyś w DevTools.
- Wierny round-trip: sformatuj, potem zminifikuj — i odzyskujesz bajtowy odpowiednik oryginalnego dokumentu (z dokładnością do opcji deklaracji XML) — formatowanie nigdy nie re-kanonizuje przestrzeni nazw ani nie przepisuje kolejności atrybutów.
- Szybko: czysty DOMParser plus ~60-linijkowy wcinacz natychmiast obsługują wielomegabajtowe koperty SOAP i fragmenty OOXML, bez zewnętrznej biblioteki do pobrania.
Jakie są typowe zastosowania formatowania XML?
Pretty-print XML pojawia się w publikacji webowej, integracji korporacyjnej i archiwizacji danych:
- Inspekcja kanałów RSS / Atom: wklej ciało podcastu lub kanału informacyjnego, aby potwierdzić metadane kanału, kolejność elementów i prefiksy przestrzeni nazw przed publikacją.
- Debugowanie SOAP: sformatuj kopertę skopiowaną z Wiresharka lub logu klienta SOAP, aby sekcje Header, Body i Fault były widoczne od razu.
- Audyt mapy strony: ponownie wcinaj sitemap.xml pobrany od konkurencji lub z własnego stagingu, aby policzyć wpisy i potwierdzić warianty hreflang per URL.
Jak wygląda przykład formatowania XML?
Wklejenie trzyelementowego <feed><entry><title>Hello</title></entry></feed> i naciśnięcie Formatuj z opcją wcięcia 2 spacji daje czterolinijkowy dokument, w którym każdy element znajduje się we własnej linii z wcięciem według głębokości. Przełączenie na Minifikuj na tym samym wejściu zwija je z powrotem do oryginalnego ciągu bajtów. Round-trip jest bezstratny dla każdego poprawnie zbudowanego dokumentu.
Czy to działa offline?
Tak. Przepływ formatowania i minifikacji to czysty DOMParser + XMLSerializer plus drobny rekurencyjny wcinacz, wszystko działa wewnątrz karty przeglądarki. Nic nie jest wysyłane, żaden service worker nie proxuje Twojego wejścia, a strona wykonuje zero zapytań sieciowych do samego kroku formatowania. Jedyny ruch wychodzący to standardowe zasoby ładowania strony (CSS, czcionki, analityka) — Twój XML nigdy nie trafia do Ultim8Soft.
Czy formatowanie zmienia dokument?
Brak zmian semantycznych. Formatowanie tylko przepisuje biały znak między elementami. Nazwy elementów, wartości atrybutów, treść tekstowa, ładunki CDATA, komentarze i instrukcje przetwarzania są zachowywane bajt po bajcie. Deklaracje przestrzeni nazw i prefiksy pozostają dokładnie takie, jak je zapisało wejście — formater nie re-kanonizuje ani nie przestawia atrybutów. Wyjście parsuje się do tego samego drzewa DOM co wejście, z dokładnością do opcjonalnego przełącznika deklaracji XML.
Jak obsługiwane są CDATA / komentarze / instrukcje przetwarzania?
Każda jest emitowana dosłownie we własnej linii na bieżącej głębokości wcięcia. Ładunki CDATA są opakowane w <![CDATA[…]]> bez ponownego wcinania wewnątrz — specyfikacja mówi, że zawartość CDATA jest nieprzezroczysta, więc formater nigdy jej nie rusza. Komentarze używają <!-- … -->; instrukcje przetwarzania używają <?target data?>. Wszystkie trzy przeżywają round-trip format → minifikacja → format z nienaruszoną zawartością.
Jaka jest różnica między formatowaniem a minifikacją XML?
Formatowanie rozszerza biały znak, aby ludzie mogli czytać drzewo dokumentu; minifikacja usuwa go z powrotem do transportu i przechowywania. Obie operacje działają na sparsowanym DOM, a nie na surowym ciągu bajtów, więc round-trip format → minifikacja na poprawnie zbudowanym dokumencie daje bajtowy odpowiednik oryginalnej formy zminifikowanej. Używaj kierunku formatowania, gdy chcesz czytać lub porównywać ładunek XML, a kierunku minifikacji, gdy chcesz wysłać go przez taryfikowany API gateway lub osadzić w innym dokumencie.
Ten formater XML używa tego samego parsera, którego Twoja przeglądarka używa do odpowiedzi XHR AJAX i dokumentów SVG, więc każdy poprawnie zbudowany XML — RSS, Atom, SOAP, sitemap, OOXML, SVG — round-trip-uje czysto. Wklej dowolny XML powyżej, skopiuj wynik lub pobierz go jako .xml.