About the XML to TSV Converter
Tab separated output has one great advantage over comma separated output: you can paste it into a spreadsheet and the columns land where they should, with no import dialog and no delimiter guessing. That makes TSV the fastest route from an XML export to a sheet somebody can sort and filter.
The converter first looks for the repeating collection inside your document. That is the first array of records it finds while walking the tree, so a file with many service elements under a departures root produces one row per service. Each record is then flattened with dotted paths, meaning a nested location element with a platform child becomes a location.platform column. Attributes get the marker you choose so they never collide with a child element that shares their name.
Values are written exactly as they appear, with no number detection, which keeps reference numbers with leading zeros and long identifiers intact rather than turning them into floats. Any value that itself contains a tab, a quote or a newline is quoted and its internal quotes doubled, following the same convention spreadsheets use for CSV. Turn the header row off when you are appending to an existing sheet. If you would rather have a real workbook with typed cells, XML to Excel writes an xlsx file instead.
How to use
- Paste your XML export or upload the file.
- Check the first output line: those columns tell you which repeating element was picked as the record.
- Untick Include the header row when you are pasting into an existing sheet.
- Copy the rows and paste them straight into Excel, Numbers or Google Sheets.
Common questions
- Why did I get a single row?
- The document had no repeating element, so the whole tree was flattened into one record. Wrap several records in a shared parent to get more rows.
- Do numbers stay as text?
- Yes. Values are copied verbatim, which protects codes with leading zeros. Your spreadsheet decides how to interpret each column on paste.
- What does the @ prefix in a column name mean?
- It marks a value that came from an attribute rather than a child element. Choose None in the menu if you prefer plain names.
- Can it produce comma separated output too?
- Yes. The delimiter menu switches to comma, semicolon or pipe while keeping the same flattening and quoting rules.