XML to CSV / Excel

Paste or upload an XML file and download it as a clean CSV or Excel spreadsheet. Everything runs in your browser, so nothing is uploaded and your data never leaves your device.

Paste XML

How it works

  • We detect the repeating element in your XML (like <product>, <item>, or a sitemap's <url>) and turn each one into a row. If several repeat, pick which with the "Row element" dropdown.
  • Nested tags become dotted columns (price.currency) and attributes get an @ prefix (@id). Values are kept as text so nothing like a leading zero is lost.
  • Download a standard CSV (opens anywhere) or a real .xlsx Excel file. It all happens locally, so large files stay private.

Need to watch an XML feed or sitemap for changes over time? Monitor it with SiteGauge

What to do with the results

  • Auditing a sitemap: convert it to a spreadsheet and sort or filter by URL pattern to spot orphaned sections, duplicate paths, or pages that should not be public.
  • Working a product feed: a converted catalogue is far easier to filter, dedupe, or check for missing prices and stock statuses than the raw XML.
  • Sense-check the column names before you build anything on top of the export. Dotted names like price.currency and @id attribute columns are correct, not a formatting error.
  • Re-run after the source changes. Feeds and sitemaps update on their own schedule, so a fresh export is the only way to know the spreadsheet still matches what is live.

This tool is best for a one-off export. For the rest of your SEO and competitor research toolkit, browse the free tools directory.

Frequently asked questions

Paste the XML or upload the .xml file and press Convert. The tool finds the repeating element (like <product>, <item> or a sitemap's <url>), turns each occurrence into a row, and flattens the nested tags into columns. You then download a standard CSV or a real .xlsx Excel file. If several elements repeat, a dropdown lets you pick which one becomes the rows.

Yes. The conversion runs entirely in your browser: the XML is parsed with the browser's own DOM parser and the CSV and Excel files are built locally, so nothing is uploaded or stored anywhere. That makes it fine for exports containing customer, order or pricing data. Closing or refreshing the page clears everything.

Nested tags become dotted column names (specs.weight), and attributes get an @ prefix (@id for an attribute on the record itself, price@currency for one on a nested tag). If the same tag appears more than once inside a record, the values are joined with a pipe separator so nothing is dropped. Everything is kept as text, which means leading zeros and long numeric IDs survive instead of being mangled the way Excel sometimes does on import.

Yes, both are classic uses. A shopping feed's repeating item elements become one row per product with columns for price, availability and link, ready to filter or dedupe in a spreadsheet. An XML sitemap's <url> elements become a clean URL list, handy for auditing which pages a site exposes. Any well-formed XML with a repeating element works the same way.

There is no fixed cap because parsing happens locally; the practical limit is your browser's memory, and files in the tens of megabytes are usually fine on a modern machine. The on-page preview shows the first 100 rows to stay responsive, but the downloaded CSV or Excel file always contains every row that was converted.