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.

Options

Result

Paste XML or choose a file, and the CSV preview appears here.

How it works

  1. 1

    Paste XML or choose a file

    Product feeds, RSS, order exports, and other documents with one element per record all work.

  2. 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. 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.