Czym jest to narzędzie?
Niektóre systemy (starsze oprogramowanie firmowe, pewne API oparte na SOAP, kanały zbliżone do RSS) oczekują danych w formacie XML, podczas gdy arkusze kalkulacyjne i większość narzędzi do importu danych oczekuje CSV. To narzędzie przenosi dane między obydwoma formatami: CSV → XML zawija każdy wiersz w element <row> wewnątrz elementu głównego <rows>, przy czym każda kolumna staje się znacznikiem potomnym nazwanym według nagłówka; XML → CSV robi odwrotnie, wyodrębniając jedną kolumnę dla każdej znalezionej odrębnej nazwy znacznika potomnego.
Strona CSV jest analizowana za pomocą odpowiedniego analizatora pól w cudzysłowach (a nie zwykłego dzielenia po przecinkach), więc wartości zawierające przecinki, znaki nowej linii lub osadzone cudzysłowy są obsługiwane poprawnie. Strona XML jest analizowana za pomocą natywnego API DOMParser przeglądarki — tego samego interfejsu, którego przeglądarki używają wewnętrznie do analizowania dokumentów XML — zamiast ręcznie napisanego czytnika opartego na wyrażeniach regularnych, więc zagnieżdżone znaczniki i standardowe znakowanie XML są obsługiwane tak, jak zrobiłby to prawdziwy analizator XML.
Nazwy kolumn/znaczników, które nie są prawidłowymi nazwami elementów XML (zawierające spacje, zaczynające się od cyfry itd.), są automatycznie oczyszczane podczas generowania XML, ponieważ nazwy elementów XML podlegają bardziej rygorystycznym zasadom niż nagłówki CSV.
Źródło: analiza CSV opiera się na RFC 4180; struktura XML jest zgodna ze specyfikacją W3C XML 1.0.
Dlaczego warto go używać?
- Działa w obu kierunkach — CSV na XML i XML na CSV, w jednym narzędziu.
- Poprawna analiza CSV — obsługuje pola w cudzysłowach z przecinkami, znakami nowej linii i maskowanymi cudzysłowami, a nie tylko zwykłe dzielenie po przecinkach.
- Analiza XML oparta na standardach — XML → CSV używa wbudowanego w przeglądarkę DOMParser zamiast niestandardowego analizatora regex, więc źle sformułowany XML jest zgłaszany jako błąd zamiast po cichu generować śmieci.
- Automatyczne znakowanie XML — znaki specjalne, takie jak & i < w Twoich wartościach CSV, są poprawnie maskowane podczas generowania XML.
- W 100% po stronie klienta — nic, co wklejasz tutaj, nie jest przesyłane na serwer.
Jak używać
- Wklej dane CSV (z wierszem nagłówka) lub dane XML w polu.
- Kliknij „CSV → XML”, aby wygenerować XML, lub „XML → CSV”, aby przekonwertować XML z powrotem na tabelę.
- Sprawdź wynik — skopiuj go lub pobierz jako plik.
- Dla CSV → XML każdy wiersz staje się elementem <row> ze znacznikiem na każdą kolumnę, zawiniętym w element główny <rows>.
Przykład
Wejście
name,age
Alice,30
Bob,25Wynik
<?xml version="1.0" encoding="UTF-8"?>
<rows>
<row>
<name>Alice</name>
<age>30</age>
</row>
<row>
<name>Bob</name>
<age>25</age>
</row>
</rows>Każdy wiersz CSV staje się elementem <row>, a każda kolumna znacznikiem potomnym nazwanym według nagłówka — ponowne przepuszczenie tego XML przez „XML → CSV” odtwarza oryginalną tabelę o dwóch kolumnach.
Praktyczne wskazówki
- Zasilanie starszego systemu lub API SOAP oczekującego XML: najpierw przekonwertuj tutaj swój eksport CSV, a następnie wklej wynikowy XML bezpośrednio do systemu docelowego.
- Audyt otrzymanego eksportu XML: uruchom XML → CSV, aby szybko uzyskać czytelny widok tabeli bez potrzeby pełnego edytora XML.
- Jeśli Twój XML używa głęboko zagnieżdżonych elementów zamiast płaskiej struktury <row><kolumna>, to narzędzie nie spłaszczy dowolnego zagnieżdżenia — oczekuje jednego poziomu elementów wierszy, z których każdy zawiera proste elementy kolumn.
Dlaczego DOMParser zamiast ręcznie napisanego czytnika XML
XML ma prawdziwe zasady strukturalne — zagnieżdżone elementy, cudzysłowy atrybutów, znakowanie znaków dla &, <, > i tak dalej — które szybki analizator oparty na wyrażeniach regularnych ma tendencję do subtelnie błędnego obsługiwania w przypadku czegokolwiek poza najprostszym wejściem. Użycie natywnego API DOMParser przeglądarki oznacza, że to narzędzie polega na tym samym zgodnym ze standardami silniku XML, którego sama przeglądarka używa do renderowania dokumentów XML, zamiast ponownie implementować analizę XML od zera. Oznacza to również, że źle sformułowany XML — niezamknięty znacznik, zabłąkany nawias kątowy — pojawia się jako wyraźny błąd analizy, zamiast po cichu tworzyć uszkodzony lub niekompletny CSV.
Najczęściej zadawane pytania
Czy poprawnie obsługuje wartości CSV z przecinkami lub cudzysłowami?
Tak. Analizator CSV to prawdziwy analizator automatu skończonego, który śledzi, czy znajduje się wewnątrz pola w cudzysłowach, więc przecinki i znaki nowej linii wewnątrz cudzysłowów (np. „Smith, John”) oraz podwojone cudzysłowy używane do maskowania dosłownego znaku cudzysłowu są obsługiwane poprawnie — nie dzieli po prostu po każdym przecinku.
Jak analizowany jest XML — czy to niestandardowy analizator regex?
Nie. XML → CSV używa natywnego API DOMParser przeglądarki, aby przeanalizować XML w prawdziwe drzewo dokumentu, dokładnie tak samo, jak przeglądarka analizuje dowolny dokument XML. Oznacza to, że źle sformułowany XML jest wykrywany i zgłaszany jako błąd, zamiast po cichu generować nieprawidłowy wynik, jak mógłby to zrobić ręcznie napisany analizator regex.
Co dzieje się z nazwami kolumn, które nie są prawidłowymi znacznikami XML?
Wszystko, co nie jest literą, cyfrą, podkreśleniem, myślnikiem ani kropką, jest zastępowane podkreśleniem, a wiodące podkreślenie jest dodawane, jeśli nazwa w przeciwnym razie zaczynałaby się od cyfry lub interpunkcji — ponieważ nazwy elementów XML nie mogą zaczynać się od liczby ani zawierać spacji, jak może to zrobić nagłówek CSV.
Czy moje dane są przesyłane na serwer?
Nie. Oba kierunki konwersji odbywają się całkowicie w JavaScript w Twojej przeglądarce, przy użyciu własnego silnika analizy XML przeglądarki — nic nigdzie nie jest wysyłane, co czyni to bezpiecznym do użycia z wyeksportowanymi danymi biznesowymi lub klientów.
Czy konwersja CSV → XML → CSV da mi dokładnie to, od czego zacząłem?
Dla dobrze sformułowanego CSV ze spójnym zestawem kolumn — tak, konwersja tam i z powrotem zachowuje wartości. Jeśli Twój oryginalny CSV miał niespójne kolumny między wierszami lub nietypowe znaki w nazwach nagłówków, oczyszczone nazwy znaczników oznaczają, że dokładna pisownia nagłówka może nie zostać idealnie zachowana, chociaż wartości danych tak.