UnionSelected (XmlNodelist function)
Union of XmlNodelist and selected nodes
UnionSelected is a member of the XmlNodelist class.
This function creates an XmlNodelist that is the union of (that is, it merges) an XmlNodelist and the nodelist result of an XPath expression.
Syntax
%nlis = inNlis:UnionSelected(nr, [Xpath])
Syntax Terms
- %nlis
- An XmlNodelist pointing to the nodelist that is created.
- inNlis
- An XmlNodelist whose nodes are merged with the XPath result nodelist.
- nr
- An XmlDoc or XmlNode, used as the context node for the XPath expression.
- XPath
- A Unicode string that is an XPath expression which results in a nodelist. This is an optional argument whose default is a period (.), that is, the node referenced by the method object (nr). Prior to Sirius Mods version 7.6, this argument is an EBCDIC string.
Usage Notes
- The XmlDoc associated with inNlis and nr must be the same.
- If the result of the argument XPath expression (XPath) is empty, a copy of inNlis is returned.
Example
In the following example, the UnionSelected method adds a "b" node to a nodelist of two "a" nodes:
Begin
%doc is Object XmlDoc
%doc = New
%doc:LoadXml('<top><a><b>05</b><b></b></a><a>55</a></top>')
Call %doc:Print
%nl1 is Object XmlNodelist
%nl2 is Object XmlNodelist
%n is Object XmlNode
%i is float
%nl1 = %doc:SelectNodes('/top/a')
%nl2 = %nl1:UnionSelected(%doc, '/top/a/b[1]')
Print 'The nodes in the merged nodelist, in document order: '
For %i from 1 to %nl2:Count
%n = %nl2:Item(%i)
Print %n:Serial('.', 'EBCDIC')
End
The example results follow:
<top>
<a>
<b>05</b>
<b/>
</a>
<a>55</a>
</top>
The nodes in the merged nodelist, in document order:
<a><b>05</b><b/></a>
<b>05</b>
<a>55</a>
Request-Cancellation Errors
- The XmlDocs associated with inNlis and nr are not the same.
- XPath is invalid.
- Insufficient free space exists in CCATEMP.
See Also
- For more information about using XPath expressions, see XPath.
.if 1 = 0 .do
If you want to merge an entire nodelist onto another one, see ?? refid=$xmplcl.. .do end