{{ transformations:ImportXmlAction.png}}

======IMPORT XML FILE======
Category: Import / File\\

\\ 
=====Description=====

Import data from an XML file. Data elements are specified by an XML path. Optionally, data elements can be further narrowed down by selecting only particular XML elements and/or their attributes. Values and attributes of parent elements are repeated for child elements in order to preserve the relationship between them.\\

\\ 
=====Action settings=====
^ Setting  ^ Description  ^
|Load file<sup>*</sup>| Fully-qualified file name of the dataset (includes relative or absolute path).  |
|Decimal separator|Sets whether decimal places are represented by points or commas. Options: //Points// or //Commas//. |
|Thousand separator|Sets the character that represents thousands places. Options: //Default//, //Comma//, //Point// or //Space//. |
|DTD Processing|Sets the parsing mode EasyMoprh will use for DTD definition parsing.  See below.|
|Value types|Sets whether EasyMorph will interpret between text and numeric values, or read all data in as text values.\\ Options: //Auto//, //All text//.|
|Root XML path<sup>*</sup>|Options: //Table//, //Table/Columns/Column//, //Table/Columns/Column/Cells//, //Table/Columns/Column/Cells/Cell//.|
<sup>*</sup> Setting can be specified using a [[:parameters|parameter]].\\

\\ 
==== DTD parsing modes ====

There are three modes that instruct EasyMorph how to parse DTD definitions:

^  Mode  ^  Behavior  ^
|Prohibit (default)  |DTD is not allowed. When DTD is encountered in the loaded XML file the project fails. |
|Ignore  |DTD is allowed but ignored. When DTD is present in the loaded XML file it is completely ignored and no error is generated. |
|Parse  |DTD is parsed. |


=== Restrictions ===
  * Re-definition of namespaces is not supported. Elements with re-defined namespaces are ignored.
  * Multiple default namespaces per element not supported.
  * XML validation according to DTD or XDS is not performed.

\\ 
=====Remarks=====
Empty elements (e.g. <tag></tag> or <tag/>) are converted into empty text strings, while missing elements result in empty values (i.e. nulls).\\

\\ 
=====Community examples=====
  * [[https://community.easymorph.com/t//1475/1|Finding all projects with particular action]] ([[https://community.easymorph.com/uploads/short-url/cM8AssOT6zQXD8JDr9adUAy2sDM.morph|Project]]; Module: //Main//; Group: //Tab 1//; Table: //Documents//; Action position: //3//)
  * [[https://community.easymorph.com/t//1941/9|Breaking change in v4.4: Aggregate with Concatenate and grouping]] ([[https://community.easymorph.com/uploads/short-url/moOdgsWDrFlT6giFyP8tviJn1Sq.morph|Project]]; Module: //ScanWithModule//; Group: //Tab 1//; Table: //Version//; Action position: //1//)
  * [[https://community.easymorph.com/t//2063/2|Embedded connection - search for type email server]] ([[https://community.easymorph.com/uploads/short-url/c6uoEKu1XMEc4EFbUol4r0cQS2B.morph|Project]]; Module: //Get connectors//; Group: //Tab 1//; Table: //Imported table 1//;\\ Action position: //1//)

\\ 
=====Shortcuts=====
Fast ways to create the action:
  * Press the "Add data" menu button. Pick "Import file" or "Import multiple files".
  * Drag an XML file into the application window. Supported file extensions: .xml
  * Drag a folder with XML files into the application window.

\\ 
=====See also=====

  * [[transformations:parsexml|Parse XML]]
  * [[transformations:importjson|Import JSON]]



