Saved
Developer tools·Data Formats

XML to CSV Converter

Convert XML to CSV online, free. Detects repeated elements and turns them into spreadsheet rows with header detection. Fully client-side, no upload needed.

By Utilix Editorial Team · Added Sep 22, 2026

Input

Result

Enter a value for xml to see your result.

How it works

Converts XML into CSV (Comma-Separated Values) by finding the first set of repeated sibling elements (e.g. repeated <user> tags) and turning each one into a row. Useful for exporting XML feeds or exports into a spreadsheet.

Step by step

  1. 01Paste XML that contains a repeated element — for example, several <user> or <item> tags under a parent.
  2. 02The tool detects the repeated element and uses each occurrence as one CSV row.
  3. 03All unique child tag names across the repeated elements become the CSV columns.
  4. 04Copy the CSV and paste into Excel, Google Sheets, or any CSV-compatible tool.

Examples

List of users

Each repeated <user> element becomes a row; its child tags become columns.

Inputs

XML:
<users><user><name>Alice</name><age>30</age></user><user><name>Bob</name><age>25</age></user></users>
Delimiter:
,

Result

CSV output:
name,age Alice,30 Bob,25
Note: If no repeated element is found, the tool falls back to treating the root's direct scalar fields as a single row. Nested (non-flat) child elements are serialised as JSON strings in the cell, matching the JSON-to-CSV tool's behaviour. All parsing happens client-side — no XML is uploaded or stored.

Frequently asked questions

How does the tool decide which XML elements become rows?

It looks for the first set of sibling elements that share the same tag name and repeat more than once (for example, several <item> elements) and converts each one into a CSV row.

What if my XML has no repeated elements?

The tool falls back to a single-row CSV built from the root element's direct scalar child fields.

Can I open the result directly in Excel?

Yes — copy the CSV output and paste into Excel or Google Sheets. Choose the semicolon delimiter if your locale uses commas as decimal separators.