SelectCount (XmlDoc/XmlNode function)
SelectCount counts the number of nodes selected by an XPath expression.
%number = nr:SelectCount( xpath) Throws XPathError
|%number||A numeric variable that receives the count of nodes on the nodelist selected by the xpath expression.|
|nr||An XmlDoc or XmlNode, used as the context node for the xpath expression. If an XmlDoc, the Root node is the context node.|
|xpath||A Unicode string that is an XPath expression that results in a nodelist. The count of nodes in this nodelist is returned.
Prior to Sirius Mods Version 7.6, this is an EBCDIC string.
- If the result of the argument XPath expression (xpath) is empty, numeric zero is returned.
- In the following example, SelectCount counts the "a" node children of node "top," then the text node children of those "a" nodes:
begin %doc is object XmlDoc %j is float %k is float %doc = new %doc:loadXml('<top> <a>a1</a> <a>a2</a> <a>a3</a> </top>') Call %doc:print('/') %j = %doc:selectCount('/top/a') %k = %doc:selectCount('/top/a/text()') print %j ' and ' %k end
The example results follow:
<top> <a>a1</a> <a>a2</a> <a>a3</a> </top> 3 and 3
- The following statements count all the nodes and all the attributes in the document, respectively.
print 'Count of non-attribute nodes:' and %doc:countSelected('//node()') print 'Count of attribute nodes:' and %doc:countSelected('//@*')
This list is not exhaustive: it does not include all the errors that are request cancelling.
- The xpath expression is invalid.
- Insufficient free space exists in CCATEMP.
- Count counts the number of nodes on an XmlNodelist.
- For more information about using XPath expressions, see XPath.