Batch import XML files to PostgreSQL tables

by

Want to bulk import XML files into PostgreSQL tables at one time?

Try Withdata FileToDB, a desktop XML to PostgreSQL converter for Windows, MacOS, and Linux, Convert XML to PostgreSQL, Easy and Fast.

Download Withdata FileToDB Download FileToDB

Bulk import XML files into PostgreSQL tables

Login to PostgreSQL -> Choose XML files -> Set PostgreSQL tables -> Import XML files to PostgreSQL tables

Choose PostgreSQL and logon.

bulk import XML files into PostgreSQL tables - Choose PostgreSQL and logon

Click “Wizard – N Files To N Tables” at task dialog.

bulk import XML files into PostgreSQL tables - task window

Select the “XML” file type.

bulk load XML files into PostgreSQL tables - select file type

then show the wizard.

1. Select a folder that constains XML files.

bulk import XML files into PostgreSQL tables - select a folder

2. Config first XML file importing options.

bulk import XML files into PostgreSQL tables - config first file

3. Set “Import Type”.

bulk import XML files into PostgreSQL tables - set tables

4. Map PostgreSQL tables to XML files.

bulk import XML files into PostgreSQL tables - map

5. Summary. Set “Convert Rows” and “Skip Rows” if need.

bulk import XML files into PostgreSQL tables - preview

6. Import XML files to PostgreSQL tables, 1 file to 1 table, one by one.

bulk import XML files into PostgreSQL tables - import data

View imported data in PostgreSQL table

bulk import XML files into PostgreSQL tables - view data


More about XML to PostgreSQL converter

See also:

XML → PostgreSQL reference

Type mapping

Value kindin XMLin PostgreSQL
Int<int>1234</int>integer
Bigint<bigint>9007199254740993</bigint>bigint
Decimal<decimal>1234.56</decimal>numeric(p,s)
Float<float>1.234e10</float>double precision
Text<char>text</char>varchar(n)
Long text<text>multi-line text</text> (entities for &amp; &lt;)text
Date<date>2026-09-18</date> (xs:date with an XSD)date
Datetime<datetime>2026-09-18T14:30:00Z</datetime> (xs:dateTime)timestamp
Binary<blob>base64...</blob> (xs:base64Binary)bytea
Boolean<bool>true</bool>boolean
JSONescaped inside an element, or its own sub-treejsonb

Dialect differences

XML is a file format and PostgreSQL is a database server, so the target has to be told the types the file never carried - the rows below are where the two sides diverge.

Propertyin XMLin PostgreSQL
port—5432
identifiersAttribute values in quotes; entities (&amp; &lt; &gt;) for ..."double quotes"
row limit—LIMIT n
datesText (xs:date / xs:dateTime when an XSD is in play)timestamp, timestamptz, date, time
long text—TEXT
binarybase64Binary / hexBinary inside textBYTEA
separatorTags, not delimiters—
encodingDeclared in the XML declaration—
typingNone in the markup itself—
shapeArbitrary treeTables of rows and columns
ceilingWhole document is usually parsed into memory—

Command line

SideCommand
PostgreSQLpg_dump or COPY ... TO
PostgreSQL (load)COPY ... FROM

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.