Overview
Synchronizes specified xpath with input nodes and returns array of synchronized nodes.Array<Xml> myXml.Sync(xpath: string, input: Array<Xml>, hash: (node: Xml) => string)
Array<Xml> myXml.Sync(xpath: string, input: Array<Xml>, hash: (node: Xml) => string, removedElements: Array<Xml>)
Arguments
Remarks
Synchornization is based on input nodes and performs following actions on specified xpath;
Node comparison done with specified hash function which returns unique identifier of node. If not specified uses the node instance.
Non-existing nodes on input auto created in current node.
Existing nodes in both values are copied.
Non-existing nodes on input are removed from current node. Optionally a list of removed nodes are added on "removedNodes" parameter.
Example
Synchronize "Source" and "Target" node contents
Code Block | ||
---|---|---|
| ||
var questions = $Xml.SelectAll('Source/Questions/Question'); $Xml.Sync('Target/Questions/Question', questions, function() { return this.Evaluate('Id'); }); |
Example
Performs xquery and merges results with current nodes
Code Block | ||
---|---|---|
| ||
$Xml.SelectAll('Standards/Standard', function() { var questions = $XmlRepository.QueryXml('for $q in InternalAudit//Question\ where $q/Standards/Standard/Standard=$standard and $q/Departments/Department=$department\ return\ <Question>\ { $q/Id }\ { $q/Criteria }\ { $q/Expectation }\ </Question>', { standard : this.Evaluate('Standard'), department : $Xml.Evaluate('Department') }); this.Sync('Questions/Question', questions, function() { return this.Evaluate('Id'); }); }); |
Remarks
Synchornization is based on input nodes and performs following actions on specified xpath;
Node comparison done with specified hash function which returns unique identifier of node. If not specified uses the node instance.
Non-existing nodes on input auto created in current node.
Existing nodes in both values are copied.
Non-existing nodes on input are removed from current node. Optionally a list of removed nodes are added on "removedNodes" parameter.