XML na JSON

Darmowe narzędzie online XML na JSON, oparte na przeglądarkowym DOMParser, które parsuje XML i automatycznie konwertuje go na standardowe obiekty JSON. Atrybuty XML są mapowane bezpośrednio na pola, powtarzające się elementy są automatycznie scalane w tablice, a tekst elementów trafia do pola value. Obsługuje podwójne wyjście JSON i YAML, formatowanie prettyPrint oraz automatyczną naprawę błędów XML. Całość przetwarzana lokalnie w przeglądarce.

Powiązane Rekomendacje

O konwersji XML na JSON: automatyczne przekształcanie danych XML na standardowe obiekty JSON

Konwersja XML na JSON to proces przekształcania danych w formacie XML (eXtensible Markup Language) — takich jak komunikaty SOAP, subskrypcje RSS, pliki konfiguracyjne — na obiekty JSON (JavaScript Object Notation). XML to tradycyjny format danych systemów enterprise, usług SOAP Web Service, plików konfiguracyjnych i dokumentów Office; JSON to de facto standard nowoczesnych Web API, JavaScript i baz NoSQL. Oba formaty mają swoje zalety: XML jest ściśle samoopisowy, szeroko obsługuje przestrzenie nazw i walidację schema; JSON jest zwięzły, łatwy do parsowania i naturalnie pasuje do JavaScript. W procesie tworzenia oprogramowania często trzeba przekonwertować komunikaty XML na JSON do użytku w nowoczesnych frontendach lub mikroserwisach — to narzędzie służy do automatyzacji tego procesu.

Rdzeń narzędzia opiera się na natywnym DOMParser przeglądarki, który parsuje XML i automatycznie przegląda drzewo DOM, generując obiekty JSON. DOMParser to wbudowany w przeglądarkę parser XML zgodny ze standardem W3C DOM, obsługujący wszystkie funkcje XML 1.0 — przestrzenie nazw XML, CDATA, komentarze, atrybuty itp. Zaletą parsowania opartego na DOM jest brak zależności, dobra wydajność i zgodność ze standardami.

Reguły mapowania konwersji są bardzo intuicyjne: każdy element XML jest przekształcany na obiekt JSON, atrybuty elementu bezpośrednio na pola obiektu (bez prefiksu @, aby uniknąć powszechnych mylących konwencji nazewniczych); tekstowa zawartość elementu trafia do pola value; powtarzające się elementy o tej samej nazwie są automatycznie scalane w tablice. Na przykład <bookstore><book id="1"><title>Great Gatsby</title></book><book id="2"><title>Brief History</title></book></bookstore> jest konwertowane na {bookstore: {book: [{id: "1", title: {value: "Great Gatsby"}}, {id: "2", title: {value: "Brief History"}}]}}.

Bezprefiksowe, bezpośrednie mapowanie atrybutów to kluczowa decyzja projektowa tego narzędzia. Wiele narzędzi do konwersji XML używa specjalnych prefiksów, takich jak @attribute czy #text, do rozróżniania atrybutów i tekstu — co jest wprawdzie dokładne, ale generuje dość dziwne struktury JSON, trudne do bezpośredniego użycia w JavaScript. Bezpośrednie mapowanie atrybutów w tym narzędziu sprawia, że wygenerowany JSON jest bliższy rzeczywistemu modelowi danych biznesowych, a programiści mogą bezpośrednio definiować odpowiednie typy w interfejsach TypeScript.

Tablicowanie powtarzających się elementów to kolejna kluczowa funkcja konwersji XML na JSON. XML nie ma natywnego pojęcia tablicy — dane listowe reprezentuje się przez powtarzające się elementy (np. wiele <item>). Narzędzie automatycznie wykrywa powtarzające się tagi o tej samej nazwie pod tym samym elementem nadrzędnym i scala je w tablicę, co jest zgodne z semantyką list JSON i zapobiega utracie danych lub potrzebie ręcznego scalania.

Podwójny format wyjściowy (JSON + YAML) to wyróżnik tego narzędzia. YAML to inny popularny format serializacji danych, szeroko używany w scenariuszach konfiguracyjnych Kubernetes, Docker Compose, Ansible i GitHub Actions. Narzędzie ma wbudowany prosty konwerter YAML, obsługujący standardowe wcięcie 2 spacji, prefiks listy - i separator par klucz-wartość :. Kliknij przycisk przełączania JSON/YAML, aby w czasie rzeczywistym przełączać się między oboma formatami.

Automatyczna naprawa błędów XML (tryFixXML) zwiększa tolerancję narzędzia na błędy. W praktyce XML wprowadzany przez użytkowników często ma brakującą deklarację XML (<?xml version="1.0"?>) lub samozamykające się tagi (np. <br>, <img>) używane w stylu HTML (<br>) zamiast stylu XML (<br />). Narzędzie automatycznie dodaje deklarację XML i uzupełnia znak / w samozamykających się tagach, dzięki czemu więcej niestandardowych plików XML może zostać poprawnie sparsowanych przez DOMParser.

Formatowanie i minifikacja XML (formatXML/compressXML) bazują na bibliotece xml-formatter. Tryb prettyPrint generuje czytelny XML z wcięciem 2 spacji i zachowaniem podziałów linii; tryb minifikacji generuje zwarty XML bez białych znaków, w jednej linii, odpowiedni do transmisji sieciowej. Programiści mogą bezpośrednio użyć narzędzia do minifikacji XML przed zapisem w bazie danych, oszczędzając 30–50% przestrzeni.

Automatyczna konwersja w czasie rzeczywistym to praktyczna funkcja narzędzia. Po wprowadzeniu XML konwersja uruchamia się automatycznie z debouncingiem 500 ms, a w połączeniu z 6 skrótami klawiszowymi (macOS ⇧⌘+F/C/T/O/D/K) użytkownicy mogą szybko wykonywać typowe operacje — formatowanie, minifikację, konwersję, przesyłanie, pobieranie, wyczyszczenie — bez klikania myszą.

Czysto lokalne przetwarzanie w przeglądarce to rdzeń architektury tego narzędzia. Całe parsowanie XML, przeglądanie drzewa DOM, serializacja JSON i konwersja YAML odbywają się w JavaScript przeglądarki; DOMParser jest dostarczany natywnie przez przeglądarkę (nie trzeba dołączać biblioteki parsującej XML), a xml-formatter to lekki pakiet npm (poniżej 30 KB). Oryginalne dane XML nie są wysyłane na żaden serwer, więc wrażliwe komunikaty SOAP (np. zawierające informacje o zamówieniach czy dane użytkowników) mogą być bezpiecznie przetwarzane lokalnie.

Przypadki użycia

  • Szybkie konwertowanie komunikatów XML na JSON do użytku w nowoczesnych frontendach lub backendach Node.js podczas integracji z bramkami płatności, ERP, CRM i innymi starszymi API enterprise zwracającymi odpowiedzi XML.
  • Parsowanie feedów RSS / Atom na JSON w celu wyświetlania w frontendzie Web, agregacji w ujednoliconym czytniku feedów lub importu do bazy danych.
  • Odczytywanie plików konfiguracyjnych XML aplikacji Java (np. Spring, Tomcat, Apache — web.xml, applicationContext.xml) i konwertowanie ich na JSON do zapytań jq lub importu do innych narzędzi.
  • Konwertowanie odpowiedzi XML protokołu SOAP 1.1/1.2 na JSON do dalszego przetwarzania z bibliotekami Node.js, takimi jak jsonwebtoken czy lodash.
  • Parsowanie skryptów budowania, takich jak pom.xml Mavena czy build.xml Ant, na JSON na potrzeby wizualizacji metadanych projektu i analizy zależności.
  • Konwertowanie feedów RSS, plików Sitemap XML i subskrypcji Atom na format JSON do przechowywania w nowoczesnych bazach danych, takich jak Elasticsearch czy MongoDB.
  • Konwertowanie komunikatów XML w branżowych standardach danych opartych na XML (np. HL7 w medycynie, ISO 20022 w finansach) na JSON do przetwarzania przez nowoczesne mikroserwisy.
  • Konwertowanie plików XML związanych z SEO (np. z Google Merchant Center, Sitemap.org — sitemap.xml, robots.xml) na JSON do użycia przez crawler lub narzędzia analityczne.

Jak Używać

  1. Wklej zawartość XML w lewym polu wejściowym, kliknij przycisk „Prześlij”, aby wybrać plik .xml/.txt, lub kliknij „Przykład”, aby załadować wbudowany przykład bookstore.
  2. Narzędzie przekonwertuje automatycznie (debouncing 500 ms po wprowadzeniu); po prawej stronie zobacz przekonwertowany JSON lub YAML, z podświetlaniem składni CodeMirror dla lepszej czytelności.
  3. Kliknij przyciski JSON / YAML na prawym pasku narzędzi, aby w czasie rzeczywistym przełączać format wyjściowy. Możesz też użyć przycisków „Formatuj” (⇧⌘+F) lub „Minifikuj” (⇧⌘+C), aby dostosować format wejścia XML.
  4. Kliknij „Kopiuj”, aby skopiować JSON/YAML do schowka, lub „Pobierz”, aby zapisać plik z odpowiednim rozszerzeniem (output.json / output.yaml / output.xml).
  5. Aby naprawić błędy składni XML, kliknij przycisk „Napraw” obok komunikatu o błędzie (lub w menu rozwijanym obok „Przykład” na pasku narzędzi) — narzędzie wywoła tryFixXML, aby automatycznie dodać deklarację XML i uzupełnić samozamykające się tagi.
  6. Wklej JSON do kodu docelowego (np. definicji interfejsu TypeScript, typów odpowiedzi API) lub zaimportuj go do usługi backendowej w celu dalszego przetwarzania.

Funkcje

  • Inteligentne parsowanie drzewa DOM: oparte na natywnym DOMParser przeglądarki, automatycznie przegląda drzewo węzłów i generuje standardowe obiekty JSON bez żadnych zależności.
  • Bezpośrednie mapowanie atrybutów: atrybuty XML (np. id="1", category="fiction") są bezpośrednio konwertowane na zwykłe pola obiektu JSON, bez prefiksu @.
  • Tablicowanie powtarzających się elementów: powtarzające się elementy XML o tej samej nazwie są automatycznie scalane w tablice JSON ({book: [{...}, {...}]}), zgodnie z powszechnymi konwencjami struktur danych.
  • Wyodrębnianie węzłów tekstowych: tekstowa zawartość elementu jest automatycznie zapisywana w polu value, obok atrybutów i elementów potomnych.
  • Podwójny format wyjściowy: jedno kliknięcie przełącza między JSON (wcięcie 2 spacji w trybie prettyPrint) a YAML (wcięcie 2 spacji, prefiks listy -), dostosowując się do różnych scenariuszy użycia.
  • Automatyczna naprawa błędów XML: wbudowana funkcja tryFixXML automatycznie dodaje brakującą deklarację XML i uzupełnia samozamykające się tagi, takie jak br/hr/img.
  • Formatowanie i minifikacja XML: dzięki bibliotece xml-formatter obsługuje upiększone wyjście prettyPrint i zminifikowane wyjście minify (wcięcie 2 spacji lub bez białych znaków).
  • Konwersja automatyczna w czasie rzeczywistym: po wprowadzeniu XML konwersja uruchamia się automatycznie z debouncingiem 500 ms, bez konieczności ręcznego klikania; wyjście aktualizuje się na żywo.
  • Podwójne podświetlanie składni JSON/XML: po lewej stronie podświetlanie składni XML w CodeMirror, po prawej — podświetlanie JSON lub YAML w zależności od formatu.
  • Kompletny system skrótów klawiszowych: 6 często używanych skrótów (formatowanie/minifikacja/konwersja/przesyłanie/pobieranie/wyczyszczenie), obsługujących macOS i Windows/Linux.
  • Kopiowanie i pobieranie: jednym kliknięciem kopiuje do schowka lub pobiera jako standardowy plik output.json/output.yaml/output.xml (rozszerzenie wybierane automatycznie według formatu).
  • Czysto lokalne przetwarzanie w przeglądarce: całe parsowanie XML, przeglądanie drzewa DOM, serializacja JSON i konwersja YAML odbywają się w JavaScript przeglądarki, oryginalne dane nie są wysyłane, a DOMParser jest dostarczany natywnie przez przeglądarkę.

Często Zadawane Pytania

Jak przekonwertować XML na format JSON?

Wklej zawartość XML do lewego pola wejściowego — narzędzie użyje natywnego DOMParser przeglądarki do sparsowania XML i automatycznie przekonwertuje drzewo DOM na standardowy obiekt JSON. Węzeł główny jest opakowany jako { [tagName]: {...} }, atrybuty są mapowane na zwykłe pola (bez prefiksu @), tekst elementu trafia do pola value, a powtarzające się elementy o tej samej nazwie są automatycznie scalane w tablice. Konwersja uruchamia się automatycznie po 500 ms, nie trzeba klikać żadnego przycisku.

Jak są konwertowane atrybuty i węzły tekstowe w XML?

Narzędzie stosuje intuicyjny schemat mapowania: atrybuty XML są bezpośrednio mapowane na zwykłe pola obiektu JSON (np. <book id="1"> jest konwertowane na {id: "1", ...}), bez prefiksu @; tekstowa zawartość elementu trafia do pola value (np. <title>Great Gatsby</title> na {value: "Great Gatsby"}). Gdy atrybuty i tekst współistnieją, oba znajdują się obok siebie w tym samym obiekcie.

Czy wiele powtarzających się elementów o tej samej nazwie automatycznie staje się tablicą JSON?

Tak. Narzędzie automatycznie wykrywa wiele powtarzających się tagów pod tym samym elementem nadrzędnym (np. 3 elementy <book> w <bookstore>) i scala je w tablicę JSON. Na przykład <bookstore><book>...</book><book>...</book></bookstore> zostanie przekonwertowane na {bookstore: {book: [{...}, {...}]}}. Ta konwencja odpowiada najczęstszym strukturom danych w przetwarzaniu XML.

Jak obsługiwane są czyste węzły tekstowe?

Gdy element XML nie ma atrybutów, a tylko zawartość tekstową, narzędzie zwraca bezpośrednio ciąg tekstowy (np. <name>Alice</name> na "Alice"). Gdy element ma jednocześnie atrybuty i tekst, atrybuty i value znajdują się obok siebie w tym samym obiekcie ({attr: "...", value: "..."}). Gdy element ma elementy potomne, stają się one polami obiektu, a zawartość tekstowa jest scalana w pole value.

Czy można przekonwertować niepoprawnie sformatowany XML (np. z brakującymi tagami zamykającymi)?

Tak. Narzędzie ma wbudowaną funkcję naprawczą tryFixXML, która automatycznie dodaje brakującą deklarację XML (<?xml version="1.0" encoding="UTF-8"?>) oraz uzupełnia znak / w typowych samozamykających się tagach, takich jak br, hr, img. To rozwiązanie znacznie poprawia kompatybilność ze starszymi systemami i niestandardowymi interfejsami zewnętrznymi.

Jakie typy plików XML są obsługiwane?

Obsługiwane są pliki .xml i .txt (kodowanie UTF-8). Kliknij przycisk „Prześlij”, aby wybrać plik lokalny — narzędzie odczytuje go za pomocą natywnego FileReader API przeglądarki, bez wysyłania na serwer. Po pomyślnym wgraniu zawartość automatycznie trafia do pola wejściowego i uruchamiana jest konwersja.

Czy można jednocześnie wyświetlać wyjście JSON i YAML?

Tak. Narzędzie obsługuje podwójny format wyjściowy: JSON i YAML. Kliknij przycisk przełączania JSON/YAML na prawym pasku narzędzi, aby w czasie rzeczywistym przełączać format wyjściowy. Format JSON używa wcięcia 2 spacji w trybie prettyPrint; format YAML używa standardowego wcięcia 2 spacji, prefiksu listy - i separatora par klucz-wartość :, co pozwala na bezpośrednie użycie w scenariuszach konfiguracyjnych Kubernetes, Docker Compose, Ansible itp.

Jaka jest nazwa pobieranego pliku?

Rozszerzenie pliku jest wybierane automatycznie na podstawie bieżącego formatu wyjściowego: przy formacie JSON pobierany jest plik output.json, przy formacie YAML — output.yaml, a gdy zawartość jest wprowadzona ale nie przekonwertowana — output.xml (zachowując oryginalny format). Wszystkie pliki są w kodowaniu UTF-8 i mogą być bezpośrednio odczytane przez parser odpowiedniego formatu.

Jakie są skróty klawiszowe?

Narzędzie obsługuje następujące skróty: dla użytkowników macOS ⇧⌘+F formatowanie, ⇧⌘+C minifikacja, ⇧⌘+T konwersja, ⇧⌘+O przesyłanie, ⇧⌘+D pobieranie, ⇧⌘+K wyczyszczenie; użytkownicy Windows/Linux używają Ctrl zamiast ⌘. Łącznie 6 skrótów obejmujących pełny przepływ pracy.

Czy obsługiwane są przestrzenie nazw XML (namespace)?

Narzędzie parsuje XML za pomocą DOMParser, który natywnie obsługuje przestrzenie nazw XML (xmlns). Prefiks przestrzeni nazw jest zachowywany w JSON jako część nazwy elementu — np. <svg:circle> staje się {"svg:circle": {...}}. Aby uzyskać dostęp do elementów z innych przestrzeni nazw, należy rozpoznawać je po prefiksie po stronie parsowania JSON.

Czy obsługiwane są sekcje CDATA?

Tak. Zawartość sekcji CDATA (<![CDATA[...]]>) jest automatycznie scalana przez DOMParser do textContent elementu, a narzędzie wyodrębnia ją do pola value w JSON tak samo jak zwykły węzeł tekstowy. Ponieważ jednak CDATA jest typem węzła XML, a nie ciągiem znaków, oryginalne CDATA i zwykły tekst nie są rozróżnialne w wyjściu JSON.

Jaki rozmiar plików wejściowych jest obsługiwany?

Teoretycznie nie ma twardego limitu — ograniczeniem jest pamięć przeglądarki. Zazwyczaj pliki XML do 1–2 MB są przetwarzane płynnie; większe pliki mogą działać wolniej ze względu na zużycie pamięci przez DOMParser. Jeśli przetwarzanie dużych komunikatów SOAP lub feedów RSS sprawia problemy, zaleca się uprzednie zmniejszenie lub podzielenie pliku w lokalnym edytorze XML.

Rozwiązywanie problemów

Błąd parsowania JSON „unclosed token”?

Przyczyną jest zazwyczaj brak tagu zamykającego w XML, niesparowane cudzysłowy atrybutów lub niezeskejpowane znaki specjalne. Kliknij przycisk „Napraw” obok komunikatu o błędzie, aby wywołać tryFixXML, który automatycznie dodaje deklarację XML i uzupełnia samozamykające się tagi. Jeśli parsowanie wciąż nie działa, sprawdź ręcznie strukturę XML lub użyj document.documentElement.outerHTML w narzędziach developerskich przeglądarki, aby zobaczyć wynik parsowania.

Kolejność atrybutów w JSON różni się od kolejności w XML?

Standard JSON nie gwarantuje kolejności atrybutów — narzędzie mapuje je zgodnie z kolejnością w kodzie źródłowym elementu. Jeśli kolejność ma znaczenie biznesowe, zaleca się użycie Lodash toPairs lub podobnego narzędzia do przebudowy na uporządkowaną tablicę po parsowaniu JSON. Jednak zdecydowana większość silników JavaScript (V8, SpiderMonkey) zachowuje kolejność wstawiania dla kluczy tekstowych.

Pojedynczy element o danej nazwie nie staje się tablicą — jak to obsłużyć?

Narzędzie konwertuje na tablicę tylko po wykryciu powtarzających się elementów o tej samej nazwie; jeśli występuje tylko jeden taki element, narzędzie zachowuje go jako pojedynczy obiekt. Jeśli potrzebujesz wymusić tablicę (nawet dla 1 elementu), po konwersji możesz opakować wynik za pomocą lodash castArray: [result].flat() lub wymusić tablicę w walidacji JSON Schema.

Jak zachować znaki specjalne (np. <, &) w atrybutach XML?

DOMParser automatycznie od-eskejpuje wartości atrybutów, a narzędzie zachowuje od-eskejpowaną zawartość. Jeśli w oryginalnym XML zapisano &lt;, po konwersji wartością w JSON jest <. Jest to standardowe zachowanie XML, zgodne z oczekiwaniami użytkowników. Aby zachować oryginalną eskejpowaną formę, można użyć biblioteki xml-formatter lub własnego XML tokenizera zamiast DOMParser.

Dlaczego wyjście YAML nie ma informacji o typach?

Sam format YAML obsługuje typy (np. 12 to number, true to boolean, null to null), ale prosty konwerter YAML w tym narzędziu serializuje wszystkie wartości jako ciągi znaków. Jeśli potrzebujesz zachowania typów, użyj dojrzałej biblioteki YAML, takiej jak js-yaml, lub wymuś typy po stronie parsowania po walidacji przez JSON Schema.

Jak obsłużyć wejście zawierające instrukcje przetwarzania XML (PI)?

DOMParser domyślnie zachowuje instrukcje przetwarzania XML (np. <?xml-stylesheet ...?>) jako węzły ProcessingInstruction w document.firstChild. Obecnie narzędzie przegląda tylko węzły Element, więc instrukcje przetwarzania są ignorowane. Aby je zachować, możesz ręcznie wyodrębnić document.firstChild.nodeValue przed użyciem.

Czym otworzyć pobrany plik .json?

Pobrany plik output.json to standardowy plik JSON w kodowaniu UTF-8, który można otworzyć w dowolnym edytorze tekstu (VS Code, Sublime, Notepad++) lub specjalistycznym narzędziu JSON (jq, JSDoc). Można go przeciągnąć bezpośrednio do przeglądarki, aby zobaczyć sformatowaną strukturę. Prawie wszystkie języki programowania — JavaScript, Python, Node.js, Java, Go — mają wbudowane parsery JSON.

Słownik

XML (eXtensible Markup Language)
Rozszerzalny język znaczników, ustanowiony przez W3C w 1998 roku. Używa tagów w nawiasach ostrych do opisu struktury i treści danych, obsługuje przestrzenie nazw, walidację Schema i transformacje XSLT. Jest standardowym formatem dla usług SOAP Web Service, Office Open XML, RSS i Atom.
JSON (JavaScript Object Notation)
Lekki format wymiany danych, oparty na składni obiektów JavaScript, ale niezależny od języka programowania. Obsługuje sześć podstawowych typów: obiekt ({}), tablica ([]), ciąg znaków, liczba, wartość logiczna, null. Jest de facto standardem nowoczesnych Web API, baz NoSQL i ekosystemu JavaScript.
DOMParser
Natywne API przeglądarki (standard W3C DOM), które parsuje ciąg XML lub HTML na drzewo DOM. Wszystkie nowoczesne przeglądarki (Chrome, Firefox, Safari, Edge) mają je wbudowane, bez potrzeby dołączania bibliotek trzecich. Na podstawie drzewa DOM można wygodnie przeglądać, wyszukiwać i modyfikować zawartość XML.
xml-formatter
Lekka biblioteka JavaScript (poniżej 30 KB) do formatowania (prettyPrint) i minifikacji (minify) dokumentów XML. Obsługuje konfigurowalne wcięcia, znaki nowej linii, opcję collapseContent i inne. To narzędzie używa jej do zapewnienia funkcji formatowania i minifikacji XML.
Mapowanie atrybutów (attribute mapping)
Sposób mapowania atrybutów elementu XML na pola obiektu JSON. To narzędzie stosuje tryb bezpośredniego mapowania: <book id="1"> jest konwertowane na {id: "1"}, bez prefiksu @. Generuje to czystszą strukturę JSON i upraszcza definicje interfejsów TypeScript.
Tablicowanie powtarzających się elementów
Automatyczne scalanie powtarzających się elementów o tej samej nazwie w XML (np. wielu <item>) w tablicę JSON. To kluczowa decyzja projektowa w konwersji XML na JSON, zgodna z semantyką list JSON i zapobiegająca utracie danych.
Pole value
Nazwa pola na tekstową zawartość elementu XML w konwencji tego narzędzia. Element <title>Great Gatsby</title> jest konwertowany na {value: "Great Gatsby"}. Jeśli element ma jednocześnie atrybuty i tekst, atrybuty i value znajdują się obok siebie w tym samym obiekcie.
YAML (YAML Ain't Markup Language)
Przyjazny dla człowieka format serializacji danych, szeroko używany w plikach konfiguracyjnych Kubernetes, Docker Compose, Ansible i GitHub Actions. To narzędzie obsługuje prostą konwersję do YAML z wcięciem 2 spacji, prefiksem listy - i separatorem par klucz-wartość :.
SOAP (Simple Object Access Protocol)
Protokół komunikacji usług Web Service oparty na XML. Komunikaty SOAP są opakowane w kopertę SOAP (z przestrzenią nazw XML), zawierającą nagłówek i ciało (payload XML). To narzędzie może parsować komunikaty SOAP na JSON do użytku w nowoczesnych usługach JavaScript.
RSS / Atom feed
Formaty subskrypcji treści oparte na XML. Format RSS 2.0 organizuje treść w strukturze <rss><channel><item>, a Atom używa struktury <feed><entry>. Narzędzie konwertuje RSS/Atom na tablice JSON, ułatwiając wyświetlanie w frontendzie lub agregację w bazie danych.
Przestrzeń nazw XML (namespace)
Mechanizm unikania kolizji nazw elementów za pomocą atrybutu xmlns, w formacie xmlns:prefix="uri". DOMParser natywnie obsługuje przestrzenie nazw, a prefiks przestrzeni nazw jest zachowywany w JSON jako część nazwy elementu.
Sekcja CDATA
Specjalna składnia XML <![CDATA[...]]>, służąca do umieszczania tekstu zawierającego znaki specjalne (np. <, >, &) wewnątrz elementu bez potrzeby eskejpowania. DOMParser scala zawartość CDATA do textContent elementu, a narzędzie przetwarza ją jak zwykły tekst.
tryFixXML
Wbudowana w narzędzie funkcja naprawy XML, która automatycznie dodaje brakującą deklarację XML (<?xml version="1.0" encoding="UTF-8"?>) i uzupełnia znak / w typowych samozamykających się tagach, takich jak br, hr, img. Służy do obsługi „brudnych danych” ze starszych systemów lub niestandardowych interfejsów zewnętrznych.
prettyPrint
Tryb wyjściowy biblioteki xml-formatter. Po włączeniu generowany XML jest automatycznie wzbogacany o wcięcia i podziały linii (np. wcięcie 2 spacji), co zapewnia wysoką czytelność; po wyłączeniu generowany jest zwarty wyjście bez białych znaków (minify).

Reguły mapowania elementów XML na pola JSON

Reguły mapowania konwersji oparte na parsowaniu DOMParser:

Struktura XMLPrzykład XMLWyjście JSONReguła mapowania
element with attrs<book id="1" category="fiction"/>{"id": "1", "category": "fiction"}Atrybuty są bezpośrednio mapowane na pola obiektu (bez prefiksu @)
element with text<title>Great Gatsby</title>{"value": "Great Gatsby"}Tekstowa zawartość elementu trafia do pola value
attrs + text<price currency="USD">12.99</price>{"currency": "USD", "value": "12.99"}Atrybuty i tekst znajdują się obok siebie w tym samym obiekcie
no attrs, no text<book id="1"/>{"id": "1"}Tylko atrybuty, bez pola value
nested elements<book><title>Gatsby</title></book>{"title": {"value": "Gatsby"}}Elementy potomne są konwertowane na pola obiektu
repeated elements<books><book/><book/></books>{"book": [{}, {}]}Powtarzające się elementy o tej samej nazwie są automatycznie scalane w tablicę
root element<bookstore>...</bookstore>{"bookstore": {...}}Węzeł główny jest opakowany jako { [tagName]: ... }
namespace prefix<svg:circle/>{"svg:circle": {...}}DOMParser natywnie obsługuje przestrzenie nazw

Porównanie formatów wyjściowych JSON vs YAML

Cechy i scenariusze użycia dwóch formatów wyjściowych obsługiwanych przez narzędzie:

WymiarJSONYAMLUwaga
Składnia{ } : [ ] zwięzławcięcie + - listaJSON jest bardziej zwięzły, YAML bardziej czytelny
Typy danychnatywne number/bool/nullnatywne number/bool/nullOba formaty zachowują typy
Wcięcie2 spacje2 spacjeNarzędzie używa jednolicie 2 spacji
Tablice[1, 2, 3]- 1\n- 2\n- 3JSON używa nawiasów kwadratowych, YAML myślników
Komentarzenieobsługiwane (standard)# komentarzYAML obsługuje komentarze
Czytelnośćśrednia (szum nawiasów)wysoka (bliska językowi naturalnemu)YAML ma lepszą czytelność
Scenariusze użyciaREST API, frontend-backendK8s, Docker, CI/CDWeb używa JSON, konfiguracje YAML

Porównanie formatów XML i JSON

Porównanie dwóch formatów danych w różnych wymiarach, ułatwiające zrozumienie, kiedy wybrać XML lub JSON:

WymiarXMLJSONUwaga
Składnia< > </> rozwlekła{ } : [ ] zwięzłaJSON ma bardziej zwięzłą składnię, tagi XML są bardziej rozwlekłe ale czytelne
Typy danychwszystko to ciągi znakównatywne number/bool/nullJSON zachowuje typy, XML wymaga walidacji schema dla typów
Tablicepowtarzające się elementy <i>1</i><i>2</i>natywne [1,2,3]Tablice JSON są zwięzłe, tablice XML zależą od konwencji nazewniczych
Komentarze<!-- komentarz -->nieobsługiwane (standard)XML obsługuje komentarze, standard JSON nie
Przestrzenie nazwobsługa xmlnsbrakXML zapobiega kolizjom nazw w dużych dokumentach
Walidacja SchemaXSD / DTDJSON SchemaOba mają dojrzałe mechanizmy walidacji schema
Wydajność parsowaniawolniejsza (koszt tagów)szybsza (~3-5x)Parsowanie JSON jest prostsze, parsowanie XML bardziej złożone
Scenariusze użyciaSOAP, enterprise, OfficeREST API, frontend-backendNowoczesny Web używa JSON, tradycyjny enterprise XML

Privacy & Security

W tym narzędziu XML na JSON wszystkie operacje odbywają się całkowicie lokalnie w Twojej przeglądarce: parsowanie XML (oparte na natywnym DOMParser przeglądarki), przeglądanie drzewa DOM, serializacja JSON i konwersja YAML są wykonywane po stronie klienta w JavaScript przeglądarki. xml-formatter to jedyna zewnętrzna zależność (lekki pakiet npm poniżej 30 KB). Oryginalne dane XML nie są wysyłane na żaden serwer. Przesyłanie plików używa natywnego FileReader API przeglądarki do bezpośredniego odczytu do pamięci, bez pośrednictwa żadnych usług zewnętrznych. Nie używamy plików Cookie do śledzenia, nie zbieramy żadnych danych wejściowych użytkownika ani danych o użytkowaniu. Po zamknięciu lub odświeżeniu strony cała zawartość wejścia i wyjścia jest automatycznie usuwana z pamięci. Narzędzie nadaje się do przetwarzania komunikatów XML zawierających wrażliwe dane biznesowe (informacje o zamówieniach, poświadczenia użytkowników, odpowiedzi API enterprise).

Authoritative References