SOAP responses, RSS feeds, product feeds and exports from older systems arrive as XML, which spreadsheets cannot open as a table. This tool reads an XML document whose root element contains a list of records, takes the child elements of the first record as column names and writes one CSV row per record with every value quoted.
Paste the XML, name the file and download the CSV. Parsing uses the browser's built-in DOMParser, so the document is processed locally and never leaves your computer.
How to use XML to CSV step by step
Paste the XML document into the text area. The root element must contain the records as direct children, for example <products><product>...</product></products>.
Type the name of the CSV file (data by default).
Click "Convert and download CSV". If the XML is malformed you get a parsing error instead of a file.
100% free and online: no payments, no software or extensions to install.
Privacy-first: processing happens in your browser, your data never leaves your device.
No sign-up: paste your data and get the result in one click.
Fast and reliable: handle small or large files in seconds, ready for Excel and other tools.
Common use cases
Convert a Google Merchant or Amazon product feed in XML into a spreadsheet for price checks.
Turn the items of an RSS or Atom feed into a CSV list of titles and links.
Extract records from a SOAP or legacy ERP response for analysis in Excel or pandas.
Migrate an XML export of contacts or invoices into a system that imports CSV.
Limits and tips
Column names are taken from the child elements of the first record only; elements that appear only in later records are ignored.
For each column the first matching descendant is used, so a nested element with the same name deeper in the record could be picked instead of the direct child.
XML attributes (<item id="1">) are not exported; only element text content is. Move attributes to child elements if you need them.
Every cell is quoted and inner quotes are doubled, so commas and line breaks inside values are safe.
Frequently asked questions
What XML structure is required?
A root element whose direct children are the records, each record holding its fields as child elements with text. Feeds like RSS need a small adjustment because the items sit under <channel>, one level below the root: paste the <channel> element as the root instead.
Why do I get an XML parsing error?
The document is not well-formed: an unclosed tag, an unescaped & or < in text, a missing root element, or a stray byte order mark. Validate the XML in an editor or online validator, fix the reported line and try again.
What is the difference between XML and CSV?
XML is a hierarchical markup format with named tags, attributes and nesting, designed for document and data interchange between systems. CSV is a flat table of delimited values without structure beyond rows and columns. CSV is far smaller and opens in any spreadsheet; XML carries richer structure and validation via schemas.
Are attributes converted?
No. Only the text content of child elements becomes a column. If important data is stored in attributes, transform the XML first, for example with an XSLT or a search-and-replace that turns attributes into elements.
Is the XML uploaded to a server?
No. The document is parsed by the DOMParser built into your browser and the CSV is generated locally. Nothing is transmitted.
Related tools
Other free utilities you may find useful
CSV to XML — Convert CSV data to an XML formatted file.
Excel to CSV — Convert an Excel workbook (.xlsx, .xls, .ods) to UTF-8 CSV, choosing the sheet and the delimiter (comma, semicolon or tab).
Fixed-Width to CSV — Transform fixed-width text into a well-structured CSV file.