Wat is deze tool?
Sommige systemen (legacy bedrijfssoftware, bepaalde SOAP-gebaseerde API's, RSS-achtige feeds) verwachten data als XML, terwijl spreadsheets en de meeste data-importtools CSV verwachten. Deze tool verplaatst data tussen de twee formaten: CSV → XML verpakt elke rij in een <row>-element binnen een root-element <rows>, waarbij elke kolom een child-tag wordt genoemd naar de header; XML → CSV doet het omgekeerde, en extraheert één kolom per unieke child-tagnaam die het vindt.
De CSV-kant wordt geparst met een echte parser voor velden tussen aanhalingstekens (geen naïeve split op komma's), zodat waarden met komma's, regeleinden of ingesloten aanhalingstekens correct worden verwerkt. De XML-kant wordt geparst met de native DOMParser-API van de browser — dezelfde interface die browsers intern gebruiken om XML-documenten te parsen — in plaats van een handgeschreven regex-gebaseerde lezer, zodat geneste tags en standaard XML-escaping worden verwerkt zoals een echte XML-parser dat doet.
Kolom-/tagnamen die geen geldige XML-elementnamen zijn (met spaties, beginnend met een cijfer, enz.) worden automatisch gesaneerd bij het genereren van XML, aangezien XML-elementnamen strengere regels hebben dan CSV-headers.
Bron: CSV-parsing volgt RFC 4180; de XML-structuur volgt de W3C XML 1.0-specificatie.
Waarom gebruiken?
- Werkt in beide richtingen — CSV naar XML en XML naar CSV, in één tool.
- Correcte CSV-parsing — verwerkt velden tussen aanhalingstekens met komma's, regeleinden en geëscapete aanhalingstekens, niet alleen een naïeve komma-split.
- Standaardgebaseerde XML-parsing — XML → CSV gebruikt de ingebouwde DOMParser van de browser in plaats van een eigen regex-parser, zodat misvormde XML wordt gemeld als fout in plaats van stilzwijgend rommel te produceren.
- Automatische XML-escaping — speciale tekens zoals & en < in je CSV-waarden worden correct geëscaped bij het genereren van XML.
- 100% client-side — niets wat je hier plakt wordt naar een server geüpload.
Hoe te gebruiken
- Plak CSV-data (met een header-rij) of XML-data in het vak.
- Klik op "CSV → XML" om XML te genereren, of "XML → CSV" om XML terug te zetten naar een tabel.
- Bekijk de output — kopieer het of download het als bestand.
- Voor CSV → XML wordt elke rij een <row>-element met één tag per kolom, verpakt in een <rows>-root.
Voorbeeld
Invoer
name,age
Alice,30
Bob,25Uitvoer
<?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>Elke CSV-rij wordt één <row>-element, en elke kolom wordt een child-tag genoemd naar de header — als je deze XML terug haalt door "XML → CSV" reconstrueer je de originele tweekolomstabel.
Praktische tips
- Data invoeren in een legacy-systeem of SOAP-API dat XML verwacht: zet je CSV-export hier eerst om, en plak de XML-output daarna direct in het doelsysteem.
- Een ontvangen XML-export controleren: gebruik XML → CSV voor een snel, leesbaar tabeloverzicht zonder een volledige XML-editor nodig te hebben.
- Als je XML diep geneste elementen gebruikt in plaats van een platte <row><column>-structuur, plat deze tool willekeurige nesting niet af — hij verwacht één niveau van row-elementen, elk met eenvoudige kolomelementen.
Waarom DOMParser in plaats van een handgeschreven XML-lezer
XML heeft echte structurele regels — geneste elementen, aanhalingstekens rond attributen, teken-escaping voor &, <, >, enzovoort — die een snelle regex-gebaseerde parser bij alles behalve de eenvoudigste invoer subtiel fout krijgt. Door de ingebouwde DOMParser-API van de browser te gebruiken, steunt deze tool op dezelfde standaardconforme XML-engine die de browser zelf gebruikt om XML-documenten te renderen, in plaats van XML-parsing helemaal opnieuw te implementeren. Het betekent ook dat misvormde XML — een niet-gesloten tag, een verdwaald hoekje haakje — naar voren komt als een duidelijke parsefout in plaats van stilzwijgend een corrupte of onvolledige CSV te produceren.
Veelgestelde vragen
Verwerkt dit CSV-waarden met komma's of aanhalingstekens correct?
Ja. De CSV-parser is een echte state machine-parser die bijhoudt of hij zich binnen een veld tussen aanhalingstekens bevindt, dus komma's en regeleinden binnen aanhalingstekens (bijv. "Smith, John") en verdubbelde aanhalingstekens die worden gebruikt om een letterlijk aanhalingsteken te escapen, worden allemaal correct verwerkt — het splitst niet zomaar op elke komma.
Hoe wordt de XML geparst — is het een aangepaste regex-parser?
Nee. XML → CSV gebruikt de ingebouwde DOMParser-API van de browser om de XML te parsen tot een echte documentboom, op dezelfde manier waarop de browser elk XML-document parst. Dit betekent dat misvormde XML wordt gedetecteerd en gemeld als fout, in plaats van stilzwijgend onjuiste output te produceren zoals een handgeschreven regex-gebaseerde parser zou kunnen doen.
Wat gebeurt er met kolomnamen die geen geldige XML-tags zijn?
Alles wat geen letter, cijfer, underscore, streepje of punt is, wordt vervangen door een underscore, en er wordt een leidende underscore toegevoegd als de naam anders zou beginnen met een cijfer of leesteken — omdat XML-elementnamen niet mogen beginnen met een getal of spaties mogen bevatten zoals een CSV-header wel kan.
Wordt mijn data naar een server geüpload?
Nee. Beide conversierichtingen draaien volledig in JavaScript in je browser, met de eigen XML-parsing-engine van de browser — er wordt niets ergens naartoe gestuurd, dus het is veilig te gebruiken met geëxporteerde bedrijfs- of klantgegevens.
Levert CSV → XML → CSV precies op wat ik begon?
Voor goed gevormde CSV met een consistente set kolommen, ja — de rondgang behoudt de waarden. Als je originele CSV inconsistente kolommen tussen rijen had of ongebruikelijke tekens in de headernamen, betekent de sanering van tagnamen dat de exacte spelling van de header mogelijk niet perfect behouden blijft, hoewel de datawaarden dat wel zijn.