James Allman | JA Technology Solutions LLC
XML Converter
Extract repeating-element data from XML and convert to CSV, Excel, JSON, and 8 other formats.
XML Converter
Paste an XML document or upload a `.xml` file. The parser locates the first repeating-child-element collection in the tree (the ‘table’), uses the union of element and attribute names from all rows as the headers, and emits the rows in your chosen output format. Attributes appear in the headers prefixed with `@_` so they round-trip cleanly through the supported outputs. Nested element values that are themselves objects are JSON-encoded inside the cell so no structural information is lost. Outputs to all 11 shell formats — CSV, TSV, pipe-delimited text, JSON, JSONL, Excel, YAML, XML, Markdown table, HTML table, SQL INSERT. Heavy parsing and output generation run in a Web Worker so the UI stays responsive on large documents; you can cancel an in-progress conversion at any time. Runs entirely in your browser; pasted XML and uploaded files never leave your machine.
Learn more ↓
Loading interactive explorer...
Where Tabular XML Still Lives
XML feels like the past on the modern web, but the formats that actually move data between systems in enterprise environments are still substantially XML: SOAP responses, EDI-over-XML message envelopes, OFX bank statements, FedEx and UPS shipping APIs, ISO 20022 financial messages, regulatory filings (SEC EDGAR, FDA submissions), GS1 product catalog feeds, and almost every vendor “data export” option in legacy accounting, ERP, and warehouse systems. When the data inside is a list of comparable records (orders, line items, transactions, products), what most consumers want is the table view — not the angle-bracket view. This tool extracts that table.
How Attributes And Children Map To Columns
The parser uses fast-xml-parser under the hood. Each element in the repeating row position becomes one record. Its child elements become columns (named after the element tag), and its attributes become columns prefixed with @_ so they remain distinct from same-named children. Element text is taken as the cell value. If a child element is itself complex (has its own children or attributes), it is JSON-encoded into the cell so no structural information is lost — you can re-parse that cell as JSON downstream if you need to. Whitespace-only text and XML comments are dropped on parse. Namespaces are preserved as part of the tag name (with the prefix `:` retained) so you can disambiguate ns1:price from ns2:price in the output.
When You Need a Real Integration
This tool handles one-off conversions of XML you can paste or upload. For ongoing integrations — consuming a vendor SOAP API on a schedule, polling an XML inbox folder, transforming nested EDI XML to flat CSV on every drop, or routing XML payloads between systems with schema validation — the work belongs in a server-side job, not a browser. I build XML/SOAP integrations that handle authentication, retry, schema validation against XSD, namespace handling, and clean delivery to downstream systems. Need help? Integration services · ETL and data pipelines. Have a question? Ask James.
All tools run entirely in your browser. Your data never leaves your machine.