xml » insertBefore(xml,xpath,content,var)
Description
This command search against specified xml
via xpath
, and insert content
before all matching instances. The final
(modified) XML is then stored in a data variable specified as var
.
If specified xpath
refers to attribute of xml
, Nexial will insert new attribute specified via content
for all matching instances.
content
must be in key=value
pair for this. If value is missing, Nexial will create attribute with empty value.
Note:
- Nexial doesn’t support inserting multiple attributes at the same time.
A few things to consider when modifying (append, prepend or replace) XML. Since,
xpath
may resolve to a XML node (as in<node>...</node>
) or an attribute (as in<node attribute="...">...
),content
may be text or a well-formed XML snippet.
Therefore,
- If
content
is simply text (as in text content) and specifiedxpath
resolves to one or more XML nodes, then the text content of such nodes will be impacted (i.e. appended, prepended or replaced). - If
content
is a well-formed XML snippet and specifiedxpath
resolves to one or more XML nodes, then the specifiedcontent
will be converted into XML to affect (i.e. append, prepend or replace) those matching nodes. - If the specified
xpath
resolves to one or more XML attributes, thencontent
will be used as attribute values to append, prepend or replace (depending on the command used) existing attribute values.
Parameters
- xml - the XML document or file
- xpath - the XPATH to specify the target area of impact
- content - the content to insert before, may be text content, attribute value or well formed XML snippet
- var - the variable name to store the beautified content.
Example
Script:
Output: