Convert XML attributes to CSV columns

I see a post How to convert XML into CSV using XSL, the poster has a test XML like this:

<Tester author="Name" id="16384543">
  <insert tableName="sampletable">
    <column name="id" valueNumeric="2"/>
    <column name="name" value="kathy"/>
    <column name="active" valueBoolean="true"/>
    <column name="age" valueNumeric="2"/>
  </insert>
  <insert tableName="sampletable">
    <column name="id" valueNumeric="23"/>
    <column name="name" value="Queen"/>
    <column name="active" valueBoolean="true"/>
    <column name="age" valueNumeric="29"/>
  </insert>
  <insert tableName="sampletable">
    <column name="id" valueNumeric="25"/>
    <column name="name" value="varshan"/>
    <column name="active" valueBoolean="false"/>
    <column name="age" valueNumeric="5"/>
  </insert>
</Tester>

He want to convert it to CSV like this:

id,name,active,age
2,kathy,TRUE,2
23,Queen,TRUE,29
25,varshan,FALSE,5

So the XML attributes need to be converted CSV columns. I used Data File Converter, figured out converting this XML, in a minute.

1. Open XML in DataFileConverter, set XML options.
Convert XML attributes to CSV columns - open XML

2. Set XML custom columns, map XML attributes to columns.
Convert XML attributes to CSV columns - map XML attributes

Convert XML attributes to CSV columns - show custom columns

3. Set CSV options.
Convert XML attributes to CSV columns - set CSV

4. “Next” and “Next”, convert, get the output CSV file.

XML → CSV reference

Type mapping

Value kindin XMLin CSV
Int<int>1234</int>1234
Bigint<bigint>9007199254740993</bigint>9007199254740993
Decimal<decimal>1234.56</decimal>1234.56
Float<float>1.234e10</float>1.234e+10
Text<char>text</char>quoted only when it contains a comma or a quote
Long text<text>multi-line text</text> (entities for &amp; &lt;)must be quoted; line breaks inside force multi-line records
Date<date>2026-09-18</date> (xs:date with an XSD)2026-09-18
Datetime<datetime>2026-09-18T14:30:00Z</datetime> (xs:dateTime)2026-09-18 14:30:00
Binary<blob>base64...</blob> (xs:base64Binary)not representable - base64 or hex string
Boolean<bool>true</bool>TRUE / FALSE, or 1 / 0 depending on the writer
JSONescaped inside an element, or its own sub-treethe whole JSON value quoted, with internal quotes doubled

Dialect differences

Both XML and CSV are file formats, so what differs below is how each one chooses to represent a value.

Propertyin XMLin CSV
identifiersAttribute values in quotes; entities (&amp; &lt; &gt;) for ...Double quotes; a literal quote is doubled ("" )
datesText (xs:date / xs:dateTime when an XSD is in play)Conventional text: 2026-09-18 or 2026-09-18 14:30:00
binarybase64Binary / hexBinary inside textNot supported
separatorTags, not delimitersComma ","
encodingDeclared in the XML declarationNo declaration - UTF-8 works only with a BOM
typingNone in the markup itselfNone - every field is text
shapeArbitrary treeFlat table, optional header row
ceilingWhole document is usually parsed into memoryNo formal limit; row count bounded by memory

Convert your data online, free

Free in-browser converters for CSV, Excel, JSON, XML and SQL: Withdata Online Data Conversion. Large files, batch conversion or scheduling? See the offline desktop apps, or browse all data conversion tools.


Posted

in

by

Tags: