Free XML to CSV converter
Paste XML or drop a supplier feed, product catalog, or system export. Pick the element that repeats once per record, and each one becomes a row with its attributes and child elements as columns.
Runs in your browser. Your file is never uploaded.
You can also drop a file anywhere on this page. Up to 50 MB.
Result
Paste XML or choose a file, and the CSV preview appears here.
Saved you some time? Chip in to keep these tools free (opens Stripe in a new tab)Missing something? Suggest a tool
How it works
- 1
Paste XML or choose a file
Product feeds, RSS, order exports, and other documents with one element per record all work.
- 2
Pick the record element
The tool suggests the element that repeats, nearest the top of the document. Choose a different one if the rows look wrong.
- 3
Download the CSV
The preview shows the first 100 rows. The download has all of them.
- Column names
- Child elements use their tag name, and nested ones are joined with dots, like dimensions.width. Attributes start with @, so <product sku="..."> becomes @sku and <price currency="USD"> becomes price@currency.
- Repeated child elements
- Joining puts every <image> in one cell, separated by semicolons. Separate columns gives image.1, image.2, and so on. Repeated elements that have their own children always get separate columns.
- Namespaces
- Prefixed names like g:price from Google Merchant feeds are kept as they appear in the file.
Questions
Why is there only one row?
No element repeats in the document, so the whole document became one record. Check that you pasted the full file, or pick a different record element.
Does it fetch anything the XML points to?
No. External entities, schemas, and stylesheets are ignored. Only the text you paste or the file you choose is read.
How big a file can it handle?
Up to 50 MB. Most computers handle that in a few seconds. If you convert files that size on a regular schedule, a small automated job is usually the better fit.
Is my file uploaded anywhere?
No. The conversion runs in your browser with the JavaScript on this page. Your data never leaves your computer, and nothing is kept after you close the tab.
Importing a supplier feed by hand?
I set up imports that pull the feed on a schedule, map it to your system, and flag the records that don't fit.