0 lines
Drop file to load
CSV
 

Everything runs in your browser. Your XML and files are never uploaded to Flipper File.

Convert XML to CSV

Paste XML or load a file, and this converter turns its repeating records into CSV rows as you type. It finds the records on its own, turns nested elements and attributes into columns, and shows the result as a table you can check before you copy it or download it for Excel, Google Sheets, or a database import.

How to use it

  1. Paste XML into the box on the left, click Load file, or drop an XML file onto the box.
  2. Check the table on the right. If the rows aren't the records you want, pick a different Row element.
  3. Choose a delimiter, and whether repeated values should share a cell or get their own columns.
  4. Click Copy, or Download to save the file. Choose Download for Excel if you'll open it in Excel.

How rows and columns are chosen

The converter looks for the element that repeats and holds data, like every <order> inside <orders>, and makes each one a row. When there are several levels of repeating elements, it picks the outermost one, so orders become rows and the items inside each order become values in that row. The Row element menu lists every repeating element if you want a different level.

Columns come from everything inside a row:

  • Child elements become columns named after the element, like date.
  • Nested elements become columns named by their path, like customer/name.
  • Attributes on the row become columns too, like id. Attributes on nested elements are named like total/@currency.
  • If a row is missing a field that other rows have, that cell is left empty.

For example, an order like this:

<order id="1001" status="shipped">
  <date>2026-10-01</date>
  <customer>
    <name>Ana Ruiz</name>
  </customer>
  <total currency="USD">84.50</total>
</order>

becomes this row:

idstatusdatecustomer/nametotaltotal/@currency
1001shipped2026-10-01Ana Ruiz84.50USD

Repeated values inside a row

Sometimes an element repeats inside a single record, like several <sku> elements in one order. By default, those values are joined in one cell, like NB-100; PN-250. You can change the separator under More options. Choose Separate columns to give each value its own column instead, named sku, sku[2], sku[3], and so on.

Common XML files

  • RSS feeds: each <item> becomes a row with its title, link, date, and description.
  • XML sitemaps: each <url> becomes a row with its loc and lastmod.
  • Product feeds and exports: each product, order, or record element becomes a row.

Feeds often use namespace prefixes, like dc:creator. Choose Remove namespace prefixes under More options for shorter column names.

Opening the CSV in Excel

Choose Download for Excel so accented letters and symbols display correctly. Excel also removes leading zeros from values like 00721 when it opens a CSV. To keep them, import the file with Data > From Text/CSV and set those columns to Text. The CSV itself always keeps every value exactly as it appears in the XML.

Frequently asked questions

Is my XML uploaded anywhere?

No. The XML is parsed and converted in your browser, and nothing leaves your device.

Why are some cells empty?

Not every record has the same fields. If one row has a <note> and the others don't, the others get an empty cell in that column so everything lines up.

The rows are the wrong records. How do I fix that?

Open the Row element menu and choose the element you want as rows. It lists every repeating element with how many rows it would make.

How large a file can I convert?

Files up to 25 MB. The table preview shows the first 300 rows, and Copy and Download include everything.

What if my XML has an error?

The converter shows the line and column of the problem with a short explanation, and Show in input jumps right to it.

Our Full Dev Tool Library

Flipper File