TSV to XML Converter
Convert TSV (Tab-Separated Values) data into XML. Paste tab-delimited data and get one XML element per row, with configurable root and row tag names.
Conversion Options
Recommended Settings
Pro Tips
- •The header row's column names become the XML element names inside each row
- •Column names with spaces or symbols are automatically sanitized into valid XML tag names
- •Empty cells become self-closing tags like <field/> instead of empty open/close pairs
- •Enable unescaping if your TSV has literal \t, \n, or \r sequences that should become real characters
- •Special characters (&, <, >, quotes) in values are automatically escaped
Most Popular
Most users keep the default 'table'/'row' tag names and pretty printing enabled
When to Use This Tool
Convert TSV data exports into XML for import into legacy systems, SOAP APIs, or enterprise tools that require XML rather than JSON or CSV.
Bridge TSV-exporting tools and XML-based data pipelines by converting tab-delimited exports directly into XML documents.
Convert TSV output from Unix tools like awk or cut into XML for downstream tools that expect structured markup.
Use the configurable root and row tag names to quickly produce XML that matches a specific schema your downstream tooling expects.
How It Works
Split the TSV input into rows on newlines, and each row into cells on tab characters
Optionally unescape literal \t, \n, and \r sequences back into real characters
Use the first row as column headers, or generate generic column1, column2... names if there's no header row
Sanitize column names and the root/row tag names into valid XML element names
Build one XML element per row, escape special characters in values, and assemble the final XML document
100% Private
Files never leave your device. All processing happens locally in your browser.
Lightning Fast
Powered by Pure JavaScript for optimal performance on modern browsers.
Secure
No data collection, no tracking, no sign-up required.
Frequently Asked Questions
What TSV format does this tool expect?
Standard tab-delimited data: rows separated by newlines, columns separated by tab characters. By default, the first row is treated as column headers.
Can I customize the XML element names?
Yes. Set the Root Tag (the outermost element wrapping all rows) and Row Tag (the element repeated for each data row) to match whatever schema your target system expects.
What happens if a column name isn't valid XML?
Column names are automatically sanitized: spaces and invalid symbols are replaced with underscores, and a leading underscore is added if the name would otherwise start with a digit or symbol.
How are empty cells represented?
An empty cell is written as a self-closing element, like <notes/>, rather than an empty open/close pair, keeping the output compact and unambiguous.
What if my TSV doesn't have a header row?
Disable 'First row contains headers' and every row will be treated as data, with generic tag names like column1, column2 generated based on the widest row.