Skip to main content

CSV to XML Converter

Convert CSV to XML. Parses real CSV grammar — quoted fields with embedded commas, newlines and escaped double-quotes — with a comma, semicolon, tab or pipe delimiter (or auto-detect), and builds properly-indented, XML-escaped XML with customizable root/row element names. Runs entirely in your browser.

Input

Drop a file or browse
One file · text
Or

Options

On: header values become each row's XML element names. Off: generic field1, field2, …

Sanitized to a valid XML name: letters, digits, underscore — can't start with a digit.

Sanitized the same way as the root element name.

Output

XML output
 
Was this helpful?

Guides

Turn CSV data into well-formed XML in your browser — no upload, no spreadsheet software required. Paste rows copied from Excel, Google Sheets, or a database export, and get back properly-indented, escaped XML ready to drop into a config file, an API payload, or a legacy system that only speaks XML.

How to use it

  1. Paste your CSV into the input box, or drop a .csv file onto the uploader.
  2. Choose the delimiter — comma, semicolon, tab or pipe — or leave it on Auto-detect to have the tool guess from the first line.
  3. Toggle First row contains headers to control where each row's element names come from: on, the header row's values become the element name for that column in every row; off, columns are named generically (field1, field2, …).
  4. Set the root element name and row element name — these wrap the whole document and each record respectively (default <rows> / <row>).
  5. Pick an indent — 2 spaces, 4 spaces, tab, or minified — and copy or download the result as converted.xml.

The output updates automatically as you type.

How is quoting handled?

The parser follows the real CSV grammar (RFC 4180), not a naive comma split. A field wrapped in double quotes can safely contain the delimiter, a line break, or a literal double quote written as "" — for example "Smith, John" parses as one field containing a comma, and a quoted field can even span multiple lines. That means real-world exports from Excel or Google Sheets, which routinely quote fields for exactly this reason, convert correctly instead of silently splitting a value in two.

Is the XML actually safe to use?

Yes — every field value is escaped for XML (&, <, >, " and '), so a CSV cell containing something like Tom & Jerry <sample> becomes Tom &amp; Jerry &lt;sample&gt; in the output rather than producing broken or maliciously-shaped markup. This matters most for CSV exported from user-facing systems (support tickets, form submissions, free-text notes), where you can't assume the content is XML-safe to begin with.

What happens to column names that aren't valid XML?

Header values become element names, so they're sanitized into valid XML names first: spaces and punctuation turn into underscores, and a name that would otherwise start with a digit (or end up empty) gets a leading underscore instead. "2nd Score" becomes <_2nd_Score>, "First Name" becomes <First_Name>. The same sanitizing applies to your root and row element names.

Auto-detect vs. picking the delimiter manually

Auto-detect looks at the first line and picks whichever of comma, semicolon, tab or pipe appears most often outside quoted text — reliable for typical exports, but pick the delimiter explicitly if your data is unusual (for example, a single-column file where every candidate delimiter is equally absent, which auto-detect resolves to comma).

What if a row has more or fewer fields than the header row?

With headers on, a short row's missing trailing columns are simply omitted from that row's XML; a long row's extra fields beyond the last header are dropped. This keeps ragged, hand-edited CSV exports from throwing an error.

Is my data uploaded anywhere?

No. Parsing and XML generation both run entirely in your browser using a self-contained CSV parser — your data, including anything sensitive in a customer or financial export, is never sent to a server, logged, or stored.

What's the inverse of this tool?

There's no dedicated XML-to-CSV converter yet, but the CSV to JSON Converter uses the same delimiter options and RFC 4180 quoting if you need a different structured format instead.

csvxmlconverterdataspreadsheetdeveloper

Love the tools? Lose the ads.

One payment clears every ad from your account, for good. No subscription, no tracking.