Konwerter CSV na XML

Nowoczesne API wolą JSON, ale mnóstwo systemów korporacyjnych wciąż oczekuje XML: usługi SOAP, kanały produktowe dla starszych marketplace’ów, pliki płatności SEPA, sprawozdania XBRL. Ten konwerter bierze CSV, pozwala nazwać element główny i element pozycji dla każdego wiersza i tworzy poprawnie sformowany dokument XML, w którym każdy nagłówek staje się elementem potomnym wewnątrz każdego wiersza. Znaki specjalne są cytowane, a niepoprawne nazwy tagów XML czyszczone, by wynik parsował się wszędzie.

Jak generowany jest XML

  1. 1

    Wklej CSV

    Dołącz wiersz nagłówka, by konwerter wiedział, jak nazwać element każdego pola.

  2. 2

    Nazwij element główny i pozycję

    Domyślne to `<items>` i `<item>`. Nadpisz czymkolwiek, co zaczyna się literą lub podkreśleniem.

  3. 3

    Nazwy tagów czyszczone

    Znaki niebędące literą ani cyfrą stają się podkreśleniami; tagi nierozpoczynające się literą wracają do bezpiecznej wartości domyślnej.

  4. 4

    Wartości cytowane

    Ampersandy, nawiasy ostrokątne i cudzysłowy wewnątrz wartości są zastępowane encjami XML, by wynik był zawsze poprawny.

Jak wygląda wynik i gdzie się sprawdza

Wejściowy CSV

sku,name,price
A-101,Widget,9.99
B-202,Gadget,14.50

Wynikowy XML z domyślnymi wartościami

<?xml version="1.0" encoding="UTF-8"?>
<items>
  <item>
    <sku>A-101</sku>
    <name>Widget</name>
    <price>9.99</price>
  </item>
  <item>
    <sku>B-202</sku>
    <name>Gadget</name>
    <price>14.50</price>
  </item>
</items>

Zasady nazw tagów (XML 1.0)

Dozwolone Niedozwolone
Litery, cyfry, łączniki, podkreślenia, kropki Spacje, &, <, >, cudzysłowy, nawiasy, ukośniki
Musi zaczynać się literą lub podkreśleniem Nie może zaczynać się cyfrą ani interpunkcją
Prefiks xml jest zarezerwowany Tagi zaczynające się od xml mogą zostać odrzucone

Konwerter po cichu zastępuje nielegalne znaki w nazwach nagłówków podkreśleniami. Jeśli nagłówek zaczyna się cyfrą, cały tag wraca do field_N.

Tabela cytowania

Wartości przechodzą przez htmlspecialchars z ENT_XML1, więc te znaki są zastępowane:

  • &&amp;
  • <&lt;
  • >&gt;
  • "&quot;
  • '&apos;

Częste zastosowania w dalszym ciągu

  • Kanały produktowe dla starszych marketplace’ów lub porównywarek cen.
  • Treści żądań SOAP, gdzie musisz wygenerować przykładowe ładunki z danych arkusza.
  • Proste schematy w stylu XBRL lub Dublin Core, które mapują płaski rekord na nazwane elementy.
  • Zasoby ciągów Androida, choć trzeba będzie opakować całość w <resources> i zmienić nazwy elementów pozycji na <string name="...">.

Najczęściej zadawane pytania

Znaki niebędące literą ani cyfrą są zastępowane podkreśleniami, więc Product Name staje się Product_Name. Jeśli oczyszczona nazwa nie zaczyna się literą ani podkreśleniem, wraca do field_N, by pozostać poprawną w XML.

Nie bezpośrednio, każde pole CSV staje się elementem potomnym wewnątrz pozycji. Dla XML opartego na atrybutach trzeba będzie przetworzyć wynik albo użyć narzędzia specyficznego dla schematu.

Tak. Wynik zaczyna się od <?xml version="1.0" encoding="UTF-8"?>. Usuń ją ręcznie, jeśli osadzasz fragment wewnątrz większego dokumentu.

Tak. Wklejony CSV jest wysyłany na nasz serwer, ponieważ parsowanie, cytowanie i składanie XML odbywa się tam. Dane są używane wyłącznie do wygenerowania wyniku XML i nie są przechowywane.

Powiązane narzędzia