Formatowanie XML
Upiększaj, minimalizuj i waliduj XML w przeglądarce — nic nie jest przesyłane. Porządkuje wcięcia, raportuje błędy poprawności strukturalnej z numerem wiersza i kolumny. Bezpłatne, prywatne, bez rejestracji.
Czym jest formatowanie XML i po co go używać?
XML (Extensible Markup Language) to tekstowy format danych strukturalnych, używany wszędzie — od usług webowych i plików konfiguracyjnych po kanały RSS, API SOAP, dokumenty biurowe (DOCX, XLSX), grafikę SVG i pliki układów Androida. W odróżnieniu od JSON, XML obsługuje komentarze, przestrzenie nazw, mieszaną zawartość (tekst i elementy przeplatane) oraz deklaracje typów dokumentów — co czyni go formatem z wyboru dla integracji korporacyjnych, wymiany dokumentów i wszędzie tam, gdzie dane strukturalne muszą współistnieć z czytelnym dla człowieka znacznikiem.
XML spotykany w praktyce jest często źle wcięty lub całkowicie zminimalizowany — odpowiedzi API przychodzą w jednej linii, pliki konfiguracyjne gromadzą niespójne wcięcia, a XML generowany przez serializatory nie ma żadnych białych znaków. Narzędzie do formatowania XML pobiera takie nieuporządkowane dane wejściowe i re-indentuje je w czystą, hierarchiczną strukturę, gdzie każdy poziom zagnieżdżenia jest wizualnie czytelny. Jest to niezbędne podczas przeglądów kodu, debugowania, dokumentacji i rozumienia nieznanych schematów XML.
**Co to narzędzie robi inaczej niż zwykły edytor tekstu:**
**1. Walidacja poprawności strukturalnej z dokładną lokalizacją błędu.** Narzędzie używa DOMParser przeglądarki (tego samego silnika, który parsuje HTML i SVG) do analizy XML. Jeśli dokument nie jest poprawny strukturalnie — niezgodne znaczniki, niezamknięte elementy, nieescapowane znaki lub wiele elementów głównych — parser raportuje dokładny numer wiersza i kolumny, w którym się nie powiódł. Jest to znacznie szybsze niż czytanie surowego XML w poszukiwaniu przypadkowo niezamkniętego znacznika.
**2. Bezstratne formatowanie.** Narzędzie zachowuje komentarze, instrukcje przetwarzania, sekcje CDATA, deklaracje przestrzeni nazw, kolejność atrybutów i całą treść tekstową dokładnie. Modyfikuje wyłącznie białe znaki między znacznikami elementów. Można bezpiecznie formatować dowolny ważny XML — nic istotnego się nie zmieni.
**3. Minimalizacja do zastosowań produkcyjnych.** Minimalizator usuwa wszystkie nieistotne białe znaki między elementami, tworząc najmniejszą poprawną reprezentację XML. Jest to właściwy krok wstępnego przetwarzania przed zapisaniem XML w kolumnie bazy danych, wstawieniem go jako ciągu do JSON lub przesłaniem przez kanał liczony w bajtach.
**4. 100% prywatność oparta na przeglądarce.** XML z ochrony zdrowia (HL7, FHIR), dane finansowe, ładunki SOAP z danymi uwierzytelniającymi i wewnętrzne pliki konfiguracyjne to powszechne ładunki XML zawierające wrażliwe dane. Narzędzie nigdy niczego nie przesyła — całe przetwarzanie odbywa się w silniku JavaScript przeglądarki. Jeśli potrzebujesz konwertować zamiast formatować, skorzystaj z narzędzi towarzyszących: Konwerter XML na JSON do konwersji XML na JSON oraz Konwerter JSON na XML do konwersji w odwrotnym kierunku.
<!-- Minified XML input -->
<?xml version="1.0" encoding="UTF-8"?><catalog><product id="p01"><name>Wireless Headphones</name><price currency="USD">79.99</price></product></catalog>
<!-- After formatting with 2-space indent -->
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<product id="p01">
<name>Wireless Headphones</name>
<price currency="USD">79.99</price>
</product>
</catalog> Kluczowe funkcje
Upiększanie z wcięciem 2 lub 4 spacji
Porządkuje wcięcia XML w czystą, czytelną hierarchię. Przed formatowaniem wybierz wcięcie 2-spacjowe (najczęstsze dla usług webowych, RSS i plików konfiguracyjnych) lub 4-spacjowe (popularne w korporacyjnych schematach XML).
Minimalizacja — usuwanie nieistotnych białych znaków
Usuwa wszystkie białe znaki między znacznikami elementów bez dotykania treści tekstowej, produkując jak najmniejszy poprawny XML. Idealne do przechowywania, przesyłania lub osadzania jako ciąg w JSON lub innych formatach.
Walidacja poprawności strukturalnej z błędami wiersz/kolumna
Używa wbudowanego w przeglądarkę DOMParser do walidacji struktury XML. Raportuje dokładny numer wiersza i kolumny pierwszego błędu poprawności strukturalnej — niezgodne znaczniki, niezamknięte elementy, nieescapowane znaki — dla szybkiego debugowania.
Bezstratność: zachowanie komentarzy, przestrzeni nazw i atrybutów
Komentarze, instrukcje przetwarzania, sekcje CDATA, deklaracje przestrzeni nazw i kolejność atrybutów są zachowane dokładnie. Modyfikowane są wyłącznie nieistotne białe znaki między znacznikami — zawartość nigdy nie ulega zmianie.
100% w przeglądarce — bez przesyłania, bez serwera
Całe przetwarzanie odbywa się lokalnie w przeglądarce. Ładunki XML zawierające dane uwierzytelniające, dane medyczne, dokumenty finansowe lub wewnętrzne konfiguracje nigdy nie są przesyłane na żaden serwer ani rejestrowane.
Obsługa SOAP, RSS, SVG, XHTML i XML Androida
Obsługuje dowolne poprawne strukturalnie zastosowanie XML: koperty SOAP z nagłówkami WS-Security, kanały RSS/Atom, pliki SVG, dokumenty XHTML, pliki układów Androida, pliki Maven POM i pliki kompilacji Maven/Ant.
Przykłady
Zminimalizowany XML
<?xml version="1.0" encoding="UTF-8"?><catalog><product id="p01" category="electronics"><name>Wireless Headphones</name><price currency="USD">79.99</price><stock>142</stock><tags><tag>audio</tag><tag>bluetooth</tag></tags></product><product id="p02" category="books"><name>Learning XML</name><price currency="USD">29.99</price><stock>55</stock></product></catalog>
Skompaktowany, jednolinijkowy katalog produktów XML. Kliknij Formatuj, aby rozwinąć go w czytelne drzewo z wcięciem 2 spacji. Hierarchia elementów, atrybuty i treść tekstowa są zachowane w całości — formatowanie jest czysto kosmetyczne.
Fragment kanału RSS
<rss version="2.0"><channel><title>Go Tools Blog</title><link>https://go-tools.org/blog</link><description>Developer tools, tips and tutorials</description><item><title>Understanding XML Namespaces</title><link>https://go-tools.org/blog/xml-namespaces-guide</link><pubDate>Thu, 29 May 2026 00:00:00 GMT</pubDate><description>A deep dive into XML namespace declarations, prefixes, and scope rules with practical examples.</description></item><item><title>XML vs JSON: When to Use Each</title><link>https://go-tools.org/blog/xml-vs-json</link><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate></item></channel></rss>
Dwuelementowy kanał RSS 2.0 skompresowany do jednej linii. Po sformatowaniu metadane kanału i każdy element item są wyraźnie wcięte, co ułatwia inspekcję struktury kanału, dodawanie nowych wpisów lub porównywanie z wymaganiami walidatora.
Koperta SOAP
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Header><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><wsse:UsernameToken><wsse:Username>api-client</wsse:Username><wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-ext-1.0.xsd#PasswordText">s3cr3t</wsse:Password></wsse:UsernameToken></wsse:Security></soap:Header><soap:Body><GetOrderRequest xmlns="http://example.com/orders"><OrderId>ORD-20260529-001</OrderId><IncludeLineItems>true</IncludeLineItems></GetOrderRequest></soap:Body></soap:Envelope>
Koperta SOAP 1.1 z nagłówkiem WS-Security i treścią GetOrder, korzystająca z trzech prefiksów przestrzeni nazw (soap:, wsse: i domyślnego). Formatowanie natychmiast klaruje separację nagłówka i treści oraz deklaracje przestrzeni nazw — niezbędne przy debugowaniu integracji SOAP i analizowaniu ładunków generowanych przez WSDL.
Jak używać
- 1
Wklej dane XML
Wprowadź lub wklej XML do pola wejściowego powyżej. Możesz też kliknąć «Wczytaj przykład», aby wypróbować próbkę (zminimalizowany katalog produktów XML, który ładnie się formatuje).
- 2
Wybierz akcję
Kliknij Formatuj, aby upiększyć z wcięciami, Minimalizuj, aby usunąć białe znaki, lub Waliduj, aby sprawdzić poprawność strukturalną. Przed formatowaniem wybierz wcięcie 2 lub 4 spacje.
- 3
Skopiuj wynik
Przetworzony XML pojawia się w panelu wyjściowym. Kliknij Kopiuj, aby przenieść go do schowka. Jeśli Walidacja wykryła błędy, baner błędu pokazuje dokładny numer wiersza i kolumny.
Typowe błędy XML
Niezgodne znaczniki
Nazwy znaczników XML rozróżniają wielkość liter i muszą być dopasowane dokładnie.
<products>
<Item>
<name>Widget</name>
</item>
</products> <products>
<item>
<name>Widget</name>
</item>
</products> Nieescapowany znak ampersand lub mniejszości
Znaki & i < są zarezerwowane w XML i muszą być escapowane poza sekcjami CDATA. Nagi & powoduje błąd parsera nawet w wartościach atrybutów. Użyj & dla & i < dla <. Znak większości > powinien być escapowany jako > w treści tekstowej, choć parsery są bardziej tolerancyjne w tym względzie.
<query>price > 10 & stock > 0</query>
<query>price > 10 & stock > 0</query>
Atrybuty bez cudzysłowów lub z błędnymi cudzysłowami
Wszystkie wartości atrybutów XML muszą być ujęte w pojedyncze lub podwójne cudzysłowy. Wartości atrybutów bez cudzysłowów są prawidłowe w HTML5, ale są błędem poprawności strukturalnej w XML. Wartość zawierająca podwójny cudzysłów musi używać pojedynczych cudzysłowów jako ograniczników (lub escapować cudzysłów jako ").
<product id=p01 label="It's a "widget"">
<product id="p01" label="It's a "widget"">
Wiele elementów głównych
Dokument XML musi mieć dokładnie jeden element główny zawierający wszystkie inne elementy. Częstym błędem przy łączeniu fragmentów XML jest uzyskiwanie dwóch lub więcej elementów najwyższego poziomu obok siebie, co jest nieprawidłowym XML (choć powszechne w HTML). Owiń wszystkie elementy siostrzane w jeden kontener główny.
<user><name>Alice</name></user> <user><name>Bob</name></user>
<users> <user><name>Alice</name></user> <user><name>Bob</name></user> </users>
Niezgodność kodowania w deklaracji XML
Jeśli plik XML jest zapisany w UTF-16 lub innym kodowaniu innym niż UTF-8, ale deklaracja mówi encoding="UTF-8" (lub jest nieobecna, co domyślnie oznacza UTF-8), niektóre parsery odrzucą go lub wyprodukują śmieci. Przy wklejaniu do narzędzia przeglądarkowego przeglądarka obsługuje kodowanie automatycznie. W przypadku plików na dysku upewnij się, że atrybut kodowania odpowiada rzeczywistemu kodowaniu pliku.
<?xml version="1.0" encoding="UTF-8"?> <!-- File is actually saved as UTF-16 -->
<?xml version="1.0" encoding="UTF-16"?> <!-- File saved as UTF-16, declaration matches -->
Nieprawidłowo zamknięta sekcja CDATA
Sekcja CDATA zaczyna się od . Jeśli sekwencja zamykająca ]]> jest nieobecna lub błędnie wpisana, parser traktuje wszystko co następuje jako część sekcji CDATA, aż znajdzie kolejne ]]> lub dotrze do końca dokumentu. Objawia się to zazwyczaj błędami «nieoczekiwany koniec dokumentu».
<script><![CDATA[
if (a < b && b > c) { return true; }
<!-- ]]> is missing --> <script><![CDATA[
if (a < b && b > c) { return true; }
]]></script> Typowe zastosowania
- Debugowanie ładunków SOAP i usług webowych
- Odpowiedzi SOAP z korporacyjnych API i starszych usług webowych przychodzą jako jednolinijkowe ciągi XML. Wklej surowy ładunek do formatowania, aby natychmiast zobaczyć strukturę koperty, nagłówki i treść — co ułatwia znalezienie szukanego pola lub wykrycie niezgodności przestrzeni nazw. Patrz też: Konwerter XML na JSON, jeśli potrzebujesz dalej przetwarzać ładunek w JavaScript.
- Walidacja plików konfiguracyjnych i deskryptorów wdrożeń
- Pliki Maven POM, konteksty aplikacji Spring XML, server.xml Tomcat, pliki Android Manifest i wiele innych plików konfiguracyjnych Java/enterprise to XML. Uruchom je przez Waliduj przed zatwierdzeniem, aby wykryć niezgodne znaczniki lub problemy z kodowaniem, które w innym przypadku ujawniłyby się dopiero podczas kompilacji lub wdrożenia.
- Formatowanie wyjścia kanałów RSS i Atom
- Kanały RSS 2.0 i Atom 1.0 to XML. Przy tworzeniu generatora kanałów lub debugowaniu problemów ze zgodnością czytnika kanałów, sformatuj surowy XML kanału, aby inspekcjonować metadane kanału, strukturę elementów i wymagane deklaracje przestrzeni nazw obok siebie.
- Czytanie i edycja plików SVG
- Pliki SVG wyeksportowane z Figmy, Illustratora lub Sketcha są prawidłowym XML, ale często są zminimalizowane lub zawierają nadmierne wcięcia z eksportera. Sformatuj SVG, aby uzyskać czystą, nawigowaną hierarchię elementów przed ręcznymi edycjami ścieżek, grup lub atrybutów stylizacji.
- Przygotowanie XML do przechowywania lub przesyłania
- Przy przechowywaniu XML w kolumnie bazy danych, wysyłaniu go jako pole ciągu JSON w żądaniu API lub wstawianiu do kolejki komunikatów, użyj najpierw Minimalizuj, aby usunąć zbędne białe znaki. Zmniejsza to rozmiar ładunku i unika problemów z parserami JSON, które mogą się krzaczyć na nieescapowanych znakach kontrolnych w dużych wcięciowych ciągach XML.
- Konwersja XML na JSON
- Jeśli chcesz przekonwertować sformatowany XML na JSON do użycia w aplikacji JavaScript lub REST API, skorzystaj z naszego Konwertera XML na JSON. Do odwrotnego kierunku — budowania XML ze struktury JSON — użyj Konwertera JSON na XML.
Szczegóły techniczne
- DOMParser przeglądarki do parsowania XML
- Parsowanie XML używa natywnego DOMParser przeglądarki z typem MIME «text/xml». Jest to ten sam silnik, który obsługuje renderowanie SVG i XHTML w przeglądarce — jest w pełni zgodny z XML 1.0 i raportuje błędy poprawności strukturalnej z informacją o numerze wiersza i kolumny. Gdy dokument nie jest poprawny strukturalnie, DOMParser zwraca dokument parsererror zawierający komunikat błędu i pozycję, które narzędzie wyodrębnia i wyświetla.
- Serializacja drzewa DOM do formatowania
- Formatowanie działa przez parsowanie XML do drzewa DOM, a następnie rekurencyjne przechodzenie po drzewie w celu produkowania wciętego wyjścia. To podejście zachowuje semantyczną strukturę dokumentu: zagnieżdżenie elementów, treść tekstową, atrybuty, sekcje CDATA, instrukcje przetwarzania i komentarze są wszystkie serializowane dokładnie tak jak zostały sparsowane. Odrzucane są wyłącznie węzły tekstowe zawierające tylko białe znaki między elementami — węzły tekstowe zawierające znaki inne niż białe są zawsze zachowywane.
- Minimalizacja przez usuwanie węzłów tekstowych zawierających tylko białe znaki
- Minimalizacja przechodzi przez to samo drzewo DOM i usuwa węzły tekstowe, których zawartość składa się wyłącznie z białych znaków (spacje, tabulatory, znaki nowej linii). Węzły tekstowe z mieszaną lub niebiałą zawartością — faktyczne dane między znacznikami — nigdy nie są usuwane. Atrybuty i ich wartości są serializowane bez dodatkowych białych znaków. Wynikiem jest najbardziej zwarta poprawna strukturalnie reprezentacja XML oryginalnego dokumentu.
- 100% w przeglądarce — bez przesyłania, bez serwera
- Całe przetwarzanie odbywa się w środowisku uruchomieniowym JavaScript przeglądarki. Żadne dane nie są przesyłane na żaden serwer w żadnym momencie. Jest to szczególnie ważne w przypadku ładunków XML, które często zawierają wrażliwe treści: tokeny SOAP WS-Security, dane pacjentów HL7, wewnętrzną konfigurację serwisów oraz finansowe formaty wiadomości (FIX, SWIFT ISO 20022). Narzędzie jest bezpieczne do użytku z dowolnym XML, którego nie chciałbyś wklejać do publicznej usługi.
Dobre praktyki
- Waliduj przed formatowaniem, formatuj przed zatwierdzaniem
- Najpierw zwaliduj XML, aby potwierdzić jego poprawność strukturalną przed ponownym formatowaniem — formatowanie może po cichu produkować nieprawidłowe wyjście, jeśli dane wejściowe nie są poprawnym XML. Po walidacji sformatuj i przejrzyj wcięte wyjście przed zatwierdzeniem plików konfiguracyjnych, szablonów kanałów lub definicji WSDL w systemie kontroli wersji.
- Używaj wcięcia 2-spacjowego dla formatów webowych, 4-spacjowego dla korporacyjnego XML
- Wcięcie 2-spacjowe jest konwencją dla kanałów RSS/Atom, SVG, XHTML, XML Androida i większości XML zorientowanego na web. Wcięcie 4-spacjowe jest powszechne w środowiskach Java enterprise (Maven POM, pliki kontekstu Spring, deskryptory wdrożeń JBoss). Dopasuj konwencję do istniejących plików i łańcucha narzędzi.
- Minimalizuj XML przed osadzaniem w JSON
- Jeśli chcesz osadzić ciąg XML jako wartość pola JSON, zawsze najpierw go minimalizuj. Wcięty XML zawiera znaki nowej linii i wielokrotne spacje, które muszą być escapowane w JSON (\n, wielokrotne \u0020), znacznie zwiększając rozmiar ładunku. Zminimalizowany XML jest też znacznie mniej podatny na wywoływanie ograniczeń długości linii w pośrednich proxy lub systemach rejestrowania.
- Escapuj znaki specjalne w treści tekstowej, używaj CDATA oszczędnie
- Dla krótkich wartości tekstowych zawierających & lub <, używaj referencji encji (&, <) — są bardziej przenośne niż sekcje CDATA i działają też w wartościach atrybutów. Rezerwuj sekcje CDATA () dla osadzania dużych bloków kodu, zapytań SQL lub fragmentów HTML, gdzie escapowanie każdego znaku specjalnego uczyniłoby treść nieczytelną.
- Deklaruj przestrzenie nazw jak najwcześniej
- Deklaruj przestrzenie nazw XML (xmlns:prefix="URI") na elemencie głównym lub na elemencie najwyższego poziomu, który używa prefiksu. Deklarowanie przestrzeni nazw głęboko w drzewie dokumentu utrudnia czytanie XML i może powodować problemy z parserami XML opartymi na strumieniu (SAX, StAX), które przetwarzają przestrzenie nazw inkrementalnie. Przykład koperty SOAP powyżej demonstruje zalecany wzorzec: wszystkie deklaracje przestrzeni nazw na elemencie głównym Envelope.
Najczęściej zadawane pytania
Czy dane XML są wysyłane na serwer podczas korzystania z narzędzia?
Co sprawdza przycisk Waliduj?
Czy walidacja sprawdza zgodność ze schematem XML (XSD) lub DTD?
Jaka jest różnica między formatowaniem (upiększaniem) a minimalizacją?
Czy formatowanie zachowuje komentarze XML i atrybuty?
Jak formatować XML z wcięciem 4 spacji zamiast 2?
Jaki wersja XML i kodowanie obsługuje narzędzie?
Co powoduje błąd «poprawności strukturalnej» i jak go naprawić?
Czy można używać narzędzia do formatowania plików XHTML lub SVG?
Jak narzędzie obsługuje przestrzenie nazw XML?
Czy istnieje limit rozmiaru danych wejściowych XML?
Jak przekonwertować XML na JSON lub JSON na XML?
Powiązane narzędzia
Zobacz wszystkie narzędzia →Koder i dekoder Base64
Kodowanie i formatowanie
Zakoduj i zdekoduj Base64 online za darmo. Konwersja w czasie rzeczywistym z pełną obsługą UTF-8 i emoji. 100% w przeglądarce, bez rejestracji.
Konwerter CSV na JSON
Kodowanie i formatowanie
Konwertuj CSV na JSON w przeglądarce. RFC 4180, wnioskowanie typów, nagłówek, big-int safe. 100% prywatnie, bez wysyłki.
JSON Diff (Porównaj)
Kodowanie i formatowanie
Porównaj dwa pliki JSON natychmiast w przeglądarce. Podświetlanie obok siebie, wynik JSON Patch (RFC 6902), ignorowanie szumliwych pól jak znaczniki czasu i identyfikatory. 100% prywatności, bez przesyłania.
Formatowanie i walidacja JSON
Kodowanie i formatowanie
Formatuj, waliduj i upiększaj JSON w przeglądarce. Bezpłatne narzędzie z kontrolą składni, wykrywaniem błędów i minifikacją. 100% prywatnie.
Walidator JSON Schema
Kodowanie i formatowanie
Sprawdź dane JSON względem dowolnego JSON Schema natychmiast w przeglądarce. Obsługa Draft 2020-12, 2019-09 i Draft-07 z dokładnymi ścieżkami błędów. 100% prywatnie — bez wysyłania, bez konta, za darmo.
Konwerter JSON na CSV
Kodowanie i formatowanie
Konwertuj JSON na CSV w przeglądarce. Presety RFC 4180, Excel-EU, TSV, Pipe. Spłaszczanie zagnieżdżeń lub stringify. 100% prywatnie, bez wysyłki.