How Automatic Row Detection Works
Most XML documents represent tabular data as a repeating element inside a wrapper, like a list of <item> elements inside <items>. This converter walks the parsed XML tree looking for the first array (a repeated element), and uses it as the row source automatically, so pasting typical XML and getting a CSV out usually requires no configuration at all. If your XML has multiple repeating structures and auto-detection picks the wrong one, or your data doesn't have an obvious repeating element, use the row path field to point at the exact one you want.
Using an Explicit Row Path
The row path field accepts a dot-notation path through the XML structure, like root.items.item, matching how the parsed element names nest. This is useful when your XML has more than one repeating list and auto-detection grabs the wrong one, or when the data you want is nested more than one level deep. Leave it blank to use automatic detection.
How Nested Elements and Attributes Become Columns
Child elements nested inside a row are flattened into dot-notation column names, so <address><city>Boston</city></address> becomes a column literally named address.city. XML attributes (like id="42" on an element) become their own columns too, keeping every piece of data instead of silently dropping attributes the way some simpler converters do. If a field repeats multiple times inside one row, its values are joined with a semicolon and space in the resulting cell.
A Worked Example
Given two <item> elements inside an <items> wrapper, each with a <name> and a <price currency="USD"> attribute, this converts to a CSV with columns name, price.#text, and price.@_currency, one row per item. The nested <price> text and its currency attribute both become their own columns automatically. Note that auto-detection needs at least two repeated elements to recognize a list; XML with only a single <item> is treated as one whole-document row instead (see the row path field for forcing row detection in that case).
Honest Scope: What This Converter Doesn't Do
This tool sends your XML to our server for parsing (it's not a purely client-side tool), since it relies on a full XML parser rather than browser-only string manipulation. It doesn't resolve XML namespaces specially (namespace prefixes are kept as literal text in element names), doesn't support custom delimiters other than comma, and very deeply nested or unusually irregular XML structures may need the manual row path to convert cleanly. As an xml to csv online converter, it's an xml csv converter free of charge, useful as an xml table to csv tool, an xml attributes to csv extractor, an xml to spreadsheet converter, an xml flatten to csv utility, an xml row extractor, and a general-purpose xml data converter.