Otwórz lub wklej plik CSV, a dostaniesz poprawny składniowo XML: element główny, po jednym elemencie wiersza na każdy rekord i każdą wartość jako element podrzędny lub atrybut. Nagłówki, które nie są prawidłowymi nazwami XML, np. Order ID czy 2024 total, otrzymują nowe nazwy, a każda zmiana jest wymieniona. Plik jest konwertowany w Twojej przeglądarce i nigdy nie jest wysyłany na serwer.
Jak przekonwertować CSV do XML
- Kliknij Otwórz plik, upuść plik
.csv,.tsvlub.txtna narzędzie albo wybierz Wklej. Jeśli kolumny wyglądają nieprawidłowo, sprawdź ogranicznik i kodowanie w sekcji Ustawienia importu. - Nazwij Element główny i Element wiersza (domyślnie
rowsirow) tak, jak oczekuje system docelowy. - Wybierz Zapisz wartości jako, sposób obsługi pustych wartości, Wcięcia i deklarację, a potem kliknij Kopiuj lub Pobierz XML.
Jeśli system odczytujący plik oczekuje konkretnych nazw znaczników, najpierw zmień nazwy kolumn CSV w narzędziu Mapowanie kolumn CSV, aby automatyczna zmiana nazw nie była potrzebna.
Co robi każda opcja
| Elementy podrzędne | Ustawienie domyślne: <row><Customer>Smith & Sons</Customer>…</row>. Zachowuje podziały wiersza w wartościach i pasuje do większości narzędzi importu. |
|---|---|
| Atrybuty | Jeden samozamykający się element na wiersz: <row Customer="Smith & Sons" …/>. Zwięzły zapis; tabulatory i podziały wiersza w wartościach są zapisywane jako 	, i , aby parser je zachował. |
| Pomiń puste wartości | Domyślnie wyłączone, więc pusta komórka staje się pustym elementem, np. <Ship_date/>. Po włączeniu element lub atrybut jest w danym wierszu pomijany. |
| Wcięcia | 2 spacje (domyślnie), 4 spacje lub Bez wcięć (zminifikowany) – wtedy cały dokument mieści się w jednej linii. |
| Dodaj deklarację XML | Domyślnie włączone: pierwsza linia to <?xml version="1.0" encoding="UTF-8"?>. Wyłącz, gdy XML ma zostać osadzony w innym dokumencie. |
Nazwy elementu głównego i elementu wiersza podlegają tym samym regułom co nagłówki; pusta lub nieprawidłowa wartość jest zastępowana przez rows lub row albo dostaje przedrostek z podkreśleniem.
Jak nazwy kolumn stają się nazwami XML
- Spacje zamieniają się w
_, a każdy znak inny niż litery, cyfry,.,-i_– również w_:Total (EUR)→Total__EUR_,e-mail:work→e-mail_work. Dwukropki są zastępowane, więc nie powstają przedrostki przestrzeni nazw. - Nazwa zaczynająca się od cyfry,
.lub-dostaje podkreślenie na początku (2024 total→_2024_total); tak samo nazwa zaczynająca się odxmlw dowolnej wielkości liter, zarezerwowana w XML (xml_ref→_xml_ref). - Jeśli dwa nagłówki dadzą tę samą nazwę, drugi dostaje
_2(a bia_b→a_b,a_b_2). Nazwy XML rozróżniają wielkość liter, więcNameinamepozostają różne. - Litery z dowolnego pisma są zachowywane:
Größei価格– podobnie jak polskieIlość– to prawidłowe nazwy XML. Pusty nagłówek najpierw staje sięColumn 7, a potemColumn_7. - Każda zmiana nazwy jest wymieniona pod opcjami w postaci
old → new(stara nazwa → nowa nazwa), a komunikat nad podglądem podaje ich liczbę.
Jak zapisywane są wartości
- W tekście elementów zabezpieczane są znaki
&,<i>; w atrybutach dodatkowo". Poza tym wartości są zapisywane dokładnie tak jak w CSV:00731zachowuje zera i żaden typ nie jest zgadywany. - XML 1.0 zabrania większości znaków sterujących (U+0000–U+001F poza tabulatorem, znakiem nowego wiersza i powrotem karetki), U+FFFE, U+FFFF i niesparowanych surogatów – nawet w postaci encji. Są one usuwane, a narzędzie podaje liczbę wartości, których to dotyczyło.
- Przecinki, cudzysłowy i podziały wiersza w cudzysłowie są odczytywane zgodnie z RFC 4180; podział wiersza pozostaje prawdziwym podziałem wewnątrz elementu podrzędnego.
- Wynik jest zawsze zapisany w UTF-8.
Rozwiązywanie problemów
- Narzędzie importu nie znajduje pola. Prawdopodobnie zmieniono jego nazwę. Sprawdź listę pod opcjami i zmień nazwę kolumny w CSV albo dostosuj mapowanie w systemie docelowym.
- Parser zgłasza błąd kodowania. Otwórz plik źródłowy z jego rzeczywistym kodowaniem (np. Windows-1250) w ustawieniach importu; XML jest poprawnym UTF-8 tylko wtedy, gdy CSV został prawidłowo odczytany.
- Wszystko jest w jednym elemencie. Ogranicznik został źle rozpoznany; w ustawieniach importu wybierz przecinek, średnik, tabulator lub kreskę pionową.
- Potrzebuję sekcji CDATA, przestrzeni nazw lub schematu. Konwerter zapisuje wyłącznie zwykłe elementy i atrybuty; takie elementy dodaj w kolejnym kroku.
Limity i prywatność
Pliki do 25 MB, 100 000 wierszy lub 2 mln komórek otwierają się z podglądem pierwszych 200 wierszy na żywo. Większe pliki są konwertowane strumieniowo: plik jest odczytywany dwukrotnie we fragmentach (raz, aby zmierzyć kolumny, i drugi raz, aby zapisać wynik), komunikat informuje, że pobrany plik obejmuje całość, a przycisk Kopiuj nie jest dostępny. Pojedynczy plik wynikowy może mieć najwyżej 4 GB.
Konwersja odbywa się w tle w tej karcie, więc strona cały czas reaguje, a Anuluj przerywa pracę. Plik CSV nigdy nie jest wysyłany na serwer.
Przykład
Eksport zamówień ze spacjami i nawiasami w nagłówkach, znakiem &, nawiasami ostrymi i pustą datą, przekonwertowany z ustawieniami domyślnymi. Trzy nagłówki dostają nowe nazwy, a pusta wartość Ship date staje się <Ship_date/>.
Order ID,Customer,Total (EUR),Ship date 10071,"Smith & Sons",249.00,2025-02-03 10072,"Café <Lumière>",18.50,
<?xml version="1.0" encoding="UTF-8"?>
<rows>
<row>
<Order_ID>10071</Order_ID>
<Customer>Smith & Sons</Customer>
<Total__EUR_>249.00</Total__EUR_>
<Ship_date>2025-02-03</Ship_date>
</row>
<row>
<Order_ID>10072</Order_ID>
<Customer>Café <Lumière></Customer>
<Total__EUR_>18.50</Total__EUR_>
<Ship_date/>
</row>
</rows>Pytania i odpowiedzi
Dlaczego nazwa mojej kolumny została zmieniona?
Nazwy elementów XML nie mogą zawierać spacji ani większości znaków interpunkcyjnych, nie mogą zaczynać się od cyfry ani od xml. Konwerter wprowadza najmniejszą zmianę, która daje prawidłową i unikatową nazwę, i wymienia każdą z nich.
Używać elementów czy atrybutów?
Używaj elementów podrzędnych, chyba że system docelowy wymaga atrybutów. Elementy zachowują podziały wiersza w zapisanej postaci; w wartościach atrybutów parsery XML normalizują białe znaki, dlatego konwerter zapisuje tabulatory i podziały wiersza jako odwołania do znaków.
Czy liczby i daty dostają typy?
Nie. XML nie ma wbudowanych typów wartości, więc każda wartość jest zapisywana jako tekst z CSV. Typy określa schemat albo program, który odczytuje plik.