← Back to File & Data Tools
Checking tool availability…

XML to CSV processes files locally in your browser.

Convert XML to CSV online

Turn repeated XML records into a downloadable CSV file without installing desktop software. Upload a .xml file or paste XML directly, choose which repeating element becomes a row, and review a live preview before downloading.

Your XML is processed locally in your browser and is not uploaded to our servers.

How to convert XML to CSV

  1. Choose or drag a .xml file into the tool, or switch to Paste XML and paste your text.
  2. Review the automatically detected record group and the table preview. If more than one repeating group was found, choose the one you want.
  3. Select Convert to CSV to generate and download the .csv file.

Predictable XML flattening

  • XML attributes become columns named @attribute, and nested elements flatten into dotted column names such as address.city.
  • Repeated child elements inside one record are indexed as phone, phone[2], phone[3], and so on.
  • Mixed text and child elements keep the direct text in a #text column so no content is silently discarded.
  • Every CSV value is written as plain text, so leading zeros and large identifiers are preserved exactly.
  • Formula-like values (starting with =, +, -, or @) are escaped to protect against spreadsheet formula injection when the CSV is opened in Excel or Sheets.

Private XML-to-CSV processing

Your XML is processed locally in your browser and is not uploaded to our servers, whether you choose a file or paste text. Parsing, record detection, and CSV generation all run in the browser. There is no Looty Tools conversion endpoint that receives your XML contents for this workflow.

Limits and important notes

  • Maximum XML size is 25.0 MB, whether uploaded or pasted.
  • XML must be UTF-8 encoded (or declare no encoding). Files that declare a different encoding, such as UTF-16 or ISO-8859-1, are rejected with a clear error rather than being decoded incorrectly.
  • XML documents with a DOCTYPE or DTD declaration are rejected before parsing, for security.
  • Maximum nesting depth is 50 levels, maximum output is 50,000 data rows and 500 columns, and maximum generated CSV size is 50.0 MB. Exceeding a limit fails with a clear error rather than producing truncated output.
  • Only one repeating element group becomes rows per conversion. XML with multiple unrelated record collections needs one conversion per group.
  • Only one XML input can be converted at a time.

Related tools

XML to CSV FAQ

How do I convert XML to CSV?
Open XML to CSV, choose or drop a .xml file (or switch to Paste XML), review the detected record group and preview, then select Convert to CSV to download a .csv file.
Is my XML file uploaded?
No. Your XML is processed locally in your browser and is not uploaded to our servers, whether you choose a file or paste text.
How does the tool choose which elements become rows?
It automatically detects repeated sibling elements and ranks the candidates by record count, then field richness, then shallower depth. If more than one group is found, you can choose a different group before converting.
What happens to XML attributes and nested elements?
Attributes become columns named @attribute. Nested elements are flattened into dotted column names such as address.city, and repeated child elements are indexed as phone, phone[2], and so on.
Does the tool support non-UTF-8 XML files?
Not in this release. XML must be UTF-8 encoded (or declare no encoding, which defaults to UTF-8). Files that declare a different encoding, such as UTF-16 or ISO-8859-1, are rejected with a clear error rather than being decoded incorrectly.
What is the maximum XML file size?
Each XML input must be 25 MB or smaller, whether uploaded or pasted.
Are DOCTYPE declarations supported?
No. XML documents with a DOCTYPE or DTD declaration are rejected before parsing, for security.
Will values like leading zeros be preserved?
Yes. All values are written to CSV as plain text, so leading zeros and large numeric identifiers are never reinterpreted as numbers.