Export API

Contents

XP XP 7.8.0 7.8.0

This API provides functions for creating and importing node-exports.

Usage

Add the following to your build.gradle file:

dependencies {
  include "com.enonic.xp:lib-export:${xpVersion}"
}

Add the import statement to your controller:

import exportLib from '/lib/xp/export';

You are now ready to use the API.

Functions

exportNodes

Creates a node export. Export will be created in exports directory.

Parameters

An object with the following keys and their values:

Name Type Attributes Default Description

sourceNodePath

string

Source nodes path

exportName

string

Export name

includeNodeIds

boolean

<optional>

true

Set to true to export node IDs

includeVersions

boolean

<optional>

false

Set to true to export all node versions

nodeResolved

function

<optional>

A function to be called before export starts with number of nodes to export

nodeExported

function

<optional>

A function to be called during export with number of nodes exported since last call

Returns

object : Node export results

Examples

import {exportNodes} from '/lib/xp/export';

// Export content nodes.
const exportNodes = exportNodes({
    sourceNodePath: '/content',
    exportName: 'export-1',
    includeNodeIds: true,
    includeVersions: true,
    nodeExported: (i) => {
    },
    nodeResolved: (i) => {
    }
});
// Information about exported nodes.
const expected = {
    exportedNodes: [
        '/content'
    ],
    exportedBinaries: [
        'binaryPath [ref]'
    ],
    exportErrors: [
        'some error'
    ]
};

importNodes

Imports nodes from a node export located in exports directory or from application resource files. Optionally pre-transforms node XML node files with XSLT before import.

Parameters

An object with the following keys and their values:

Name Type Attributes Default Description

source

string or object

Either name of nodes-export located in exports directory or application resource key

targetNodePath

string

Target path for imported nodes

xslt

string or object

<optional>

true

XSLT file name in exports directory or application resource key. Used for XSLT transformation

xsltParams

object

<optional>

Parameters used in XSLT transformation

includeNodeIds

boolean

<optional>

false

Set to true to use node IDs from the import, false to generate new node IDs

includePermissions

boolean

<optional>

false

Set to true to use Node permissions from the import, false to use target node permissions

nodeResolved

function

<optional>

A function to be called during import with number of nodes imported since last call

nodeImported

function

<optional>

A function to be called during import with number of nodes imported since last call

Returns

object : Node import results

Examples

import {importNodes} from '/lib/xp/export';

// Import from application resource files
const importedNodes = importNodes({
    source: resolve('/import'),
    targetNodePath: '/content',
    xslt: 'transform.xslt',
    xsltParams: {k: 'v'},
    includeNodeIds: true,
    includePermissions: true,
    nodeImported: (i) => {
    },
    nodeResolved: (i) => {
    }
});
import {importNodes} from '/lib/xp/export';

// Import from an export in exports directory
const importedNodes = importNodes({
    source: 'export-1',
    targetNodePath: '/content'
});
// Information about imported nodes.
const expected = {
    addedNodes: [
        '/added'
    ],
    updatedNodes: [
        '/updated'
    ],
    importedBinaries: [
        'binaryPath [ref]'
    ],
    importErrors: [
        {
            exception: 'com.enonic.xp.lib.export.ImportHandlerTest$NoStacktraceException',
            message: 'error',
            stacktrace: []
        }
    ]
};

Contents

Contents

AI-powered search

Juke AI