Markdown to XML Converter
Convert a Markdown table into XML. Paste a GitHub-flavored Markdown table 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
- •The separator row (the line of dashes under the header) is detected automatically and skipped
- •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
- •Special characters (&, <, >, quotes) are automatically escaped in cell values
Most Popular
Most users keep the default 'table'/'row' tag names and pretty printing enabled
When to Use This Tool
Convert a Markdown data table into XML for import into legacy systems, SOAP APIs, or enterprise tools that require XML rather than JSON or CSV.
Extract structured data from README files or specs written in Markdown and turn it into XML for configuration files or data feeds.
Migrate tabular content from static site generators or knowledge bases into XML for import into a CMS or XML-based database.
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 Markdown input into lines and detect the separator row (the line of dashes under the header)
Parse the header row and every data row by splitting on unescaped pipe (|) characters
Sanitize header names and the root/row tag names into valid XML element names
Build one XML element per row, with a child element for each column named after the header
Escape special characters in cell 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 Markdown table format does this tool expect?
Standard GitHub-flavored Markdown tables: a header row, a separator row of dashes (optionally with colons for alignment), and one or more data rows, all using pipe (|) characters to separate columns.
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.
What happens to escaped pipe characters?
A backslash-escaped pipe (\|) inside a cell is converted back into a literal pipe character before being written into the XML, since XML text content doesn't need pipes escaped.
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.