Data Conversion Tools Runs in your browser Free · no account

XML to CSV Converter

The XML to CSV converter finds the repeating record element in an XML document and writes one CSV row per record, using element paths and attributes as column names. It is built for the record-style XML that feeds product feeds, exports and legacy integrations.

Options
XML document 0 characters
CSV to XML
CSV

Your result will appear here.

Not sure where to start? Use Load example.

Results update automatically and are calculated on your device. Nothing you type is sent to a server.

Runs in your browser. Processing happens entirely in your browser. Nothing you enter is sent to Delimiter.live.

How to use the XML to CSV Converter

  1. Paste your XML, or load an .xml file.
  2. Leave the record element blank and the converter picks the most-repeated element; name it explicitly if the guess is wrong.
  3. Decide whether attributes should become columns.
  4. Download the CSV.

Example

Input
<people><person><name>Ada</name></person></people>
Output
name
Ada

Common use cases

  • Turning a product or inventory feed into a spreadsheet for review.
  • Extracting a readable table from a legacy system export.
  • Getting XML sitemap or RSS data into a form you can sort and filter.
  • Preparing XML data for import into a tool that only accepts CSV.

Limitations and things to watch for

  • The converter targets record-style XML in which one element repeats. Deeply mixed content — text interleaved with child elements — has no clean tabular form and will produce partial columns.
  • Repeated child elements inside a single record are joined with a semicolon in one column rather than being split into rows.
  • Namespaces are preserved in column names as they appear in the source.
  • Parsing uses the browser DOMParser with no network access, so external entities and DTDs are never fetched.

Frequently asked questions

How does it know which element is a record?
It counts sibling elements and picks the one that repeats most often directly under a shared parent. If that guess is wrong for your document, type the element name in the record field.
Are XML attributes included?
Yes by default, as columns prefixed with @, for example @id. Untick the option if you only want element text.
Is it safe against XXE attacks?
Yes. Parsing happens in the browser DOMParser, which does not resolve external entities or fetch DTDs, and no network request is made at any point.

Share this tool