Skip to content

ImportFromXml

Imports XML data into the specified table. If a record already exists in the table, it is updated. If no record exists, a new record is added to the table. Comparison is automatically done using the table's primary key.

1
myDataTable.ImportFromXml(options: `Columns` : Array<`Expression` : string

An expression for the column, which can be a calculation or transformation.

Name : string
The name of the column to use in the results. If not specified, the

XPath : string
An XPath expression to map data to the column.>
An array of columns to include in the result set.

Map : (node: Xml) => void
A custom mapper function to apply to each node in the result set.

MaxLength : number
The maximum number of rows to return. If not set, all rows are returned.

Node : Xml
The root node for the mapping. If not specified, the global

Order : Array<Expression : string
The expression to use for ordering the results.

Type : ( ... | ... | ... )
The type of ordering (ascending or descending). If not specified, defaults to "Ascending".>
An array of order expressions to sort the results.

Parameters : object
Additional parameters to pass to the query.

Start : number
The starting index for the rows to return.

SubQueries : Array<Columns : Array<Expression : ...
An expression for the column, which can be a calculation or transformation.

Name : ...
The name of the column to use in the results. If not specified, the

XPath : ...
An XPath expression to map data to the column.>
An array of columns to include in the result set.

MaxLength : number
The maximum number of rows to return. If not set, all rows are returned.

Name : string
The name of the sub-query. The relation name can be used as the name.

Order : Array<...>
An array of order expressions to sort the results.

Parameters : object
Additional parameters to pass to the query.

Relation : string
The name of the relation to use for the sub-query.

Start : number
The starting index for the rows to return.

SubQueries : SubQuery[]
An array of sub-queries to include in the result set.

TargetSchema : string
The name of the schema to execute the query against.

TargetTable : string
The name of the table to execute the query against.

Where : Blocks : ...
An array of nested query blocks.

Condition : ...
The condition to combine this block with the next one. If not specified, defaults to "And".

Criteria : ...
An array of criteria to apply within this block.
The criteria to filter the query results.

XPath : string
The XPath expression to export the data to.>
An array of sub-queries to include in the result set.

TargetSchema : string
The name of the schema to execute the query against.

TargetTable : string
The name of the table to execute the query against.

Where : Blocks : Array<...>
An array of nested query blocks.

Condition : ( "And" | "Or" )
The condition to combine this block with the next one. If not specified, defaults to "And".

Criteria : Array<...>
An array of criteria to apply within this block.
The criteria to filter the query results.

XPath : string
The root XPath expression to map the data to.):DataTable

Parameters

Columns : Array<Expression : string
An expression for the column, which can be a calculation or transformation.

Name : string
The name of the column to use in the results. If not specified, the

XPath : string
An XPath expression to map data to the column.>
An array of columns to include in the result set.

Map : (node: Xml) => void
A custom mapper function to apply to each node in the result set.

MaxLength : number
The maximum number of rows to return. If not set, all rows are returned.

Node : Xml
The root node for the mapping. If not specified, the global

Order : Array<Expression : string
The expression to use for ordering the results.

Type : ( ... | ... | ... )
The type of ordering (ascending or descending). If not specified, defaults to "Ascending".>
An array of order expressions to sort the results.

Parameters : object
Additional parameters to pass to the query.

Start : number
The starting index for the rows to return.

SubQueries : Array<Columns : Array<Expression : ...
An expression for the column, which can be a calculation or transformation.

Name : ...
The name of the column to use in the results. If not specified, the

XPath : ...
An XPath expression to map data to the column.>
An array of columns to include in the result set.

MaxLength : number
The maximum number of rows to return. If not set, all rows are returned.

Name : string
The name of the sub-query. The relation name can be used as the name.

Order : Array<...>
An array of order expressions to sort the results.

Parameters : object
Additional parameters to pass to the query.

Relation : string
The name of the relation to use for the sub-query.

Start : number
The starting index for the rows to return.

SubQueries : SubQuery[]
An array of sub-queries to include in the result set.

TargetSchema : string
The name of the schema to execute the query against.

TargetTable : string
The name of the table to execute the query against.

Where : Blocks : ...
An array of nested query blocks.

Condition : ...
The condition to combine this block with the next one. If not specified, defaults to "And".

Criteria : ...
An array of criteria to apply within this block.
The criteria to filter the query results.

XPath : string
The XPath expression to export the data to.>
An array of sub-queries to include in the result set.

TargetSchema : string
The name of the schema to execute the query against.

TargetTable : string
The name of the table to execute the query against.

Where : Blocks : Array<...>
An array of nested query blocks.

Condition : ( "And" | "Or" )
The condition to combine this block with the next one. If not specified, defaults to "And".

Criteria : Array<...>
An array of criteria to apply within this block.
The criteria to filter the query results.

XPath : string
The root XPath expression to map the data to. options
    An object specifying the import options. This may contain one or more of the following properties:

Returns

The current DataTable instance.

Remarks

ColumnsXPath is used to specify an additional secondary mapping path via an XPath expression.

This method does not call the DataTable.Save method after execution. If you want to save the changes, you need to explicitly call the Save method or use $Database.ImportFromXml instead.

Common use for importing data

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
var table = $Database.Get({
    Parameters : {
        TargetSchema : 'HR',
        TargetTable : 'Groups'
    }
});

table.ImportFromXml({
    XPath : 'Groups/Group'
});

table.Save();

Using a map function

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
var table = $Database.Get({
    Parameters : {
        TargetSchema : 'HR',
        TargetTable : 'Groups'
    }
});

table.ImportFromXml({
    XPath : 'Groups/Group',
    map : function (node) {
        this.Id = node.Evaluate('../Id');
    }
});

table.Save();

See Also