CodeKitHub
JSON-værktøjer

CSV til XML-konverter

Senest opdateret:

For at konvertere CSV til XML bliver hver række til et <row>-element og hver kolonne til et child-tag opkaldt efter dens header — den omvendte konvertering udtrækker én kolonne per distinkt child-tag-navn fundet i XML'en. Dette værktøj udfører den konvertering, i begge retninger, helt i din browser.

Hvad er dette værktøj?

Nogle systemer (legacy enterprise-software, visse SOAP-baserede API'er, RSS-nære feeds) forventer data som XML, mens regneark og de fleste dataimport-værktøjer forventer CSV. Dette værktøj flytter data mellem de to formater: CSV → XML pakker hver række ind i et <row>-element inde i et rod-<rows>-element, hvor hver kolonne bliver et child-tag opkaldt efter headeren; XML → CSV gør det modsatte og udtrækker én kolonne per distinkt child-tag-navn, den finder.

CSV-siden parses med en rigtig parser til citerede felter (ikke en naiv opdeling på kommaer), så værdier der indeholder kommaer, linjeskift eller indlejrede anførselstegn håndteres korrekt. XML-siden parses med browserens native DOMParser-API — det samme interface, browsere internt bruger til at parse XML-dokumenter — frem for en håndrullet regex-baseret læser, så indlejrede tags og standard XML-escaping håndteres på samme måde, som en rigtig XML-parser gør.

Kolonne-/tag-navne, der ikke er gyldige XML-elementnavne (indeholder mellemrum, starter med et ciffer, osv.), bliver automatisk saneret ved generering af XML, da XML-elementnavne har strengere regler end CSV-headers har.

Kilde: CSV-parsing følger RFC 4180; XML-struktur følger W3C XML 1.0-specifikationen.

Hvorfor bruge det?

  • Virker i begge retninger — CSV til XML og XML til CSV, i ét værktøj.
  • Korrekt CSV-parsing — håndterer citerede felter med kommaer, linjeskift og escapede anførselstegn, ikke bare en naiv opdeling på komma.
  • Standardbaseret XML-parsing — XML → CSV bruger browserens indbyggede DOMParser frem for en brugerdefineret regex-parser, så fejlformet XML rapporteres som en fejl i stedet for stiltiende at producere skrammel.
  • Automatisk XML-escaping — specialtegn som & og < i dine CSV-værdier escapes korrekt ved generering af XML.
  • 100% client-side — intet du indsætter her bliver uploadet til en server.

Sådan bruger du det

  1. Indsæt CSV-data (med en header-række) eller XML-data i boksen.
  2. Klik "CSV → XML" for at generere XML, eller "XML → CSV" for at konvertere XML tilbage til en tabel.
  3. Gennemgå outputtet — kopiér det eller download det som en fil.
  4. For CSV → XML bliver hver række til et <row>-element med ét tag per kolonne, pakket ind i en <rows>-rod.

Eksempel

Input

name,age
Alice,30
Bob,25

Output

<?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>

Hver CSV-række bliver til ét <row>-element, og hver kolonne bliver et child-tag opkaldt efter headeren — kører man denne XML tilbage gennem "XML → CSV", genskabes den oprindelige to-kolonners tabel.

Praktiske tips

  • At levere data til et legacy-system eller en SOAP-API, der forventer XML: konvertér din CSV-eksport her først, og indsæt derefter XML-outputtet direkte i målsystemet.
  • At revidere en XML-eksport, du har modtaget: kør XML → CSV for at få en hurtig, læsbar tabelvisning uden behov for en fuld XML-editor.
  • Hvis din XML bruger dybt indlejrede elementer i stedet for en flad <row><column>-struktur, vil dette værktøj ikke flade vilkårlig indlejring ud — det forventer ét niveau af row-elementer, hver indeholdende simple kolonne-elementer.

Hvorfor DOMParser i stedet for en håndskrevet XML-læser

XML har rigtige strukturelle regler — indlejrede elementer, citering af attributter, tegn-escaping for &, <, >, og så videre — som en hurtig regex-baseret parser har en tendens til at få subtilt galt på alt andet end det simpleste input. At bruge browserens indbyggede DOMParser-API betyder, at dette værktøj benytter sig af den samme standardkonforme XML-motor, som browseren selv bruger til at rendere XML-dokumenter, frem for at genimplementere XML-parsing fra bunden. Det betyder også, at fejlformet XML — et ulukket tag, en løs vinkelparentes — vises som en klar parsefejl i stedet for stiltiende at producere en korrupt eller ufuldstændig CSV.

Ofte stillede spørgsmål

Håndterer dette CSV-værdier med kommaer eller anførselstegn korrekt?

Ja. CSV-parseren er en rigtig tilstandsmaskine-parser, der holder styr på, om den er inde i et citeret felt, så kommaer og linjeskift inde i anførselstegn (f.eks. "Smith, John") og fordoblede anførselstegn brugt til at escape et bogstaveligt anførselstegn håndteres alle korrekt — den splitter ikke bare på hvert komma.

Hvordan parses XML'en — er det en brugerdefineret regex-parser?

Nej. XML → CSV bruger browserens indbyggede DOMParser-API til at parse XML'en til et rigtigt dokumenttræ, på samme måde som browseren parser ethvert XML-dokument. Det betyder, at fejlformet XML opdages og rapporteres som en fejl, i stedet for stiltiende at producere forkert output, som en håndskrevet regex-baseret parser kunne.

Hvad sker der med kolonnenavne, der ikke er gyldige XML-tags?

Alt, der ikke er et bogstav, et ciffer, en underscore, en bindestreg eller et punktum, erstattes med en underscore, og et foranstillet underscore tilføjes, hvis navnet ellers ville starte med et ciffer eller tegnsætning — da XML-elementnavne ikke kan starte med et tal eller indeholde mellemrum på den måde, en CSV-header kan.

Bliver mine data uploadet til en server?

Nej. Begge konverteringsretninger kører helt i JavaScript i din browser, ved brug af browserens egen XML-parsing-motor — intet sendes nogen steder, så det er sikkert at bruge med eksporterede forretnings- eller kundedata.

Vil konvertering CSV → XML → CSV give præcis det, jeg startede med?

For velformet CSV med et konsistent sæt kolonner, ja — rundturen bevarer værdierne. Hvis din oprindelige CSV havde inkonsistente kolonner på tværs af rækker eller usædvanlige tegn i header-navnene, betyder de saneret tag-navne, at den præcise header-stavning muligvis ikke bevares perfekt, selvom dataværdierne vil blive det.

Relaterede værktøjer