Splitter

Repeatedly matches the content of an XML document against a supplied XPath expression, enabling each match to be processed separately downstream.

Warning: This Node is replaced by For Each.

Revision History

1.0.1.3 Updated SplitDocument on Finished output to have the text <Finished />
1.0.1.4 Changed xml parsing to use XDocument instead of XmlDocument - performance improvement.
1.0.1.5 Fixed bug when root element contain a namespace and ParentAndRootNodes are selected.
1.0.1.6 Fixed regression issue where encapsulation is set to None. This used to return InnerXml, but changed to InnerText from v1.0.1.4

Properties

SourceDocumentXml

Type: Xml Input
The XML document to be processed

SplitXPath

Type: String Input
The XPath expression that will be used to evaluate matches

Encapsulation

Type: List Input
Governs how matches on the supplied XPath are encapsulated in the SplitDocumentXml property

None - No encapsulation is performed
ParentNode - The root of the Node that was matched is returned
ParentAndRootNodes - The XML document root Node is returned with the root matched Node nested into

Namespaces

Type: Multiline Text Input
A list of namespace prefixes and namespaces in the form :.
For Example:
ns:tempuri.org
ns2:otheruri.org

ChunkSize

Type: Int32 Input
The number of matches that should be returned per iteration. This can be used to achieve bulk processing but is set to 1 by default. If greater than 1, an Encapsulation option other than None must be set, otherwise an invalid XML document will be returned (ie. the document will have more than one root Node).

SplitDocumentXml

Type: Xml Output
The document returned for the current iteration

TotalRows

Type: Int32 Output
The total number of rows (split operations) for the current XML Document and XPath. These are calculated prior to the first iteration firing.

CurrentRow

Type: Int32 Output
The index of the current row (split operation) for the current XML Document and XPath. This value is updated on each iteration.

Remarks

The Splitter Node is used to iterate over sections of an XML Document. Each match of the supplied SplitXPath on SourceDocumentXml will cause the Split Output to Fire.

On completion, the Finished Output will fire.

Note that this Node will exit prior to completion of all iterations if a request is made to stop the Workflow.

Examples

See https://flowgear.me/s/bSKI18T for an example.