Go to Sign up
Note: Your files never leave your device. We don't upload, transfer, or store your data.
|
|
|
|
|---|---|---|
|
|
|
The Markdown To XML Converter on A.Tools transforms Markdown pipe-delimited tables into structured XML documents — directly in your browser, without uploading any file to a server.
Markdown tables appear in documentation, README files, and wikis. XML is used in web services (SOAP, RSS, SVG), enterprise systems (SOAP, XSLT), configuration files, and data interchange between applications. This tool bridges the two formats with 9 configurable output settings.
All processing runs client-side using JavaScript. No data leaves your device.
Click Enter Data to paste a Markdown table into the input area, or click Choose File to drag and drop a .md file. Press Sample to load example data.
Once parsed, an interactive spreadsheet appears. Use the toolbar to:
Add or delete rows and columns
Transpose the table (swap rows and columns)
Remove duplicate rows with one click
Delete empty rows and columns
Change text case (UPPERCASE, lowercase, Capitalize)
Find and replace values — supports case-sensitive search and regular expressions
Toggle First Row as Header to treat the first row as column names
Right-click any cell for context-menu operations: insert rows above/below, insert columns left/right, delete, or clear.
In the Properties panel, adjust these settings:
| Setting | Default | Description |
|---|---|---|
| Root Element | data | The outermost XML tag wrapping all rows |
| Row Element | row | The XML tag for each table row |
| Indent Size | 2 spaces | Indentation per nesting level (2/4/8 spaces or tabs) |
| Encoding | UTF-8 | Character encoding declared in the XML prolog |
| Escape XML Characters | On | Converts <, >, &, ", ' to XML entities |
| XML Declaration | On | Includes <?xml version="1.0" encoding="UTF-8"?> at the top |
| Attribute Mode | Off | Uses XML attributes instead of child elements for values |
| CDATA Wrapper | Off | Wraps values in <![CDATA[...]]> blocks |
| Minify Output | Off | Removes all whitespace and line breaks |
Click Convert to generate the XML output. Use Copy to Clipboard or Download File to save the result.
Two input modes: Paste Markdown directly or upload a .md file via drag-and-drop
Full table editor: Edit, transpose, deduplicate, find-and-replace before converting
9 XML output settings: Root/row element names, indent, encoding, escape, declaration, attribute mode, CDATA, minify
Client-side processing: Files never leave the browser — zero data upload
Undo/Redo: Full edit history with revert support
Context menu: Right-click for quick row/column/cell operations
Header toggle: Treat the first row as a header or regular data
Validation indicator: Real-time feedback on input validity
XML (eXtensible Markup Language) is a markup language that defines rules for encoding documents in a format that is both human-readable and machine-readable. Key characteristics:
Self-descriptive: Tag names describe the data they contain
Hierarchical: Supports nested parent-child structures
Standardized: Maintained by the W3C
Ubiquitous: Used in RSS/Atom feeds, SOAP web services, SVG graphics, Android layouts, Microsoft Office (.docx, .xlsx), SOAP APIs, and configuration files
XML document structure:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<row>
<name>Alice</name>
<age>30</age>
<city>New York</city>
</row>
<row>
<name>Bob</name>
<age>25</age>
<city>Los Angeles</city>
</row>
</data>
Element mode (default) places values as child elements:
<row>
<name>Alice</name>
<age>30</age>
</row>
Attribute mode places values as XML attributes on the row element:
<row name="Alice" age="30" />Attribute mode produces more compact XML. Element mode is more readable and supports values containing special characters or nested structures.
When enabled, values are wrapped in CDATA sections:
<description><![CDATA[Contains <html> & "quotes"]]></description>Use CDATA when cell values contain HTML tags, XML entities, or special characters that should be preserved literally without escaping.
The <?xml version="1.0" encoding="UTF-8"?> prolog is required for well-formed XML documents. Disable it only when embedding XML fragments into larger documents that already have a declaration.
When enabled, the five reserved XML characters are converted to entities:
| Character | Entity |
|---|---|
< | < |
> | > |
& | & |
" | " |
' | ' |
Disable only if you are certain the data contains no XML-special characters.
Removes all whitespace, line breaks, and indentation. Produces the smallest possible file size. Useful for API responses or production deployments where readability is not needed.
| Scenario | Use Markdown | Use XML | Convert |
|---|---|---|---|
| Technical documentation | Yes | No | — |
| RSS/Atom feed generation | No | Yes | Markdown → XML |
| SOAP web service payload | No | Yes | Markdown → XML |
| Android/Java configuration | No | Yes | Markdown → XML |
| SVG or XHTML generation | No | Yes | Markdown → XML |
| Data interchange with legacy systems | No | Yes | Markdown → XML |
| Version-controlled docs (Git) | Yes | No | — |
| Microsoft Office file generation | No | Yes | Markdown → XML |
Markdown tables serve human-readable documentation. XML serves machine-readable data interchange, configuration, and web services. This converter handles the transition without manual copy-pasting.
No. All file parsing and conversion runs in your browser using JavaScript. Your data stays on your device. A.Tools never receives, stores, or transmits your file contents.
The tool supports standard pipe-delimited Markdown tables following the CommonMark specification, including tables with or without leading/trailing pipes and alignment indicators (:---, :---:, ---:).
Element mode places each column value inside a child XML element. Attribute mode places each value as an attribute on the row element. Element mode is more readable and handles special characters better. Attribute mode produces more compact output.
Enable CDATA when cell values contain HTML tags, XML markup, ampersands, or other special characters that you want preserved as literal text rather than being escaped to XML entities.
Yes. The Root Element and Row Element fields in the Properties panel let you define custom tag names for the outermost container and each row. Defaults are data and row.
UTF-8 (default), UTF-16, and ISO-8859-1. The encoding is declared in the XML prolog. UTF-8 is recommended for most use cases.
Processing is client-side, so the limit depends on your browser's memory. Tables with tens of thousands of rows work reliably on modern browsers.
Yes. Toggle Minify Output in the Properties panel to remove all whitespace and line breaks, producing the smallest possible file size.