SelectCount (XmlDoc/XmlNode function): Difference between revisions
m (xpath expression) |
m (minor cleanup) |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Template:XmlDoc/XmlNode:SelectCount subtitle}} | {{Template:XmlDoc/XmlNode:SelectCount subtitle}} | ||
<var>SelectCount</var> counts the number of nodes selected by an [[XPath#XPath_syntax|XPath expression]]. | |||
==Syntax== | ==Syntax== | ||
{{Template:XmlDoc/XmlNode:SelectCount syntax}} | {{Template:XmlDoc/XmlNode:SelectCount syntax}} | ||
===Syntax terms=== | ===Syntax terms=== | ||
<table class="syntaxTable"> | <table class="syntaxTable"> | ||
<tr><th>%number</th> | <tr><th>%number</th> | ||
<td>A numeric variable | <td>A numeric variable that receives the count of nodes on the nodelist selected by the <var class="term">xpath</var> expression.</td></tr> | ||
<tr><th>nr</th> | <tr><th>nr</th> | ||
<td>An <var>XmlDoc</var> or <var>XmlNode</var>, used as the context node for the <var class="term">xpath</var> expression. If an <var>XmlDoc</var>, the Root node is the context node. </td></tr> | <td>An <var>XmlDoc</var> or <var>XmlNode</var>, used as the context node for the <var class="term">xpath</var> expression. If an <var>XmlDoc</var>, the <var>Root</var> node is the context node.</td></tr> | ||
<tr><th>xpath</th> | <tr><th>xpath</th> | ||
<td>A <var>Unicode</var> string that is an | <td>A <var>Unicode</var> string that is an [[XPath#XPath_syntax|XPath expression]] that results in a nodelist. The count of nodes in this nodelist is returned. | ||
<p> | |||
Prior to | Prior to <var class="product">[[Sirius Mods]]</var> Version 7.6, this is an EBCDIC string.</p></td></tr> | ||
</table> | </table> | ||
==Usage notes== | ==Usage notes== | ||
<ul> | <ul> | ||
<li>If the result of the argument XPath expression (< | <li>If the result of the argument XPath expression (<var class="term">xpath</var>) is empty, numeric zero is returned. | ||
zero is returned. | |||
</ul> | </ul> | ||
==Examples== | ==Examples== | ||
< | <ol> | ||
<li>In the following example, <var>SelectCount</var> counts the "a" node | <li>In the following example, <var>SelectCount</var> counts the "a" node children of node "top," then the text node children of those "a" nodes: | ||
children of node "top," then the text node children of | <p class="code">begin | ||
those "a" nodes: | %doc is object XmlDoc | ||
<p class="code"> | %j is float | ||
%doc is | %k is float | ||
%j is | %doc = new | ||
%k is | %doc:[[LoadXml_(XmlDoc/XmlNode_function)|loadXml]]('<top> <a>a1</a> <a>a2</a> <a>a3</a> </top>') | ||
%doc = | [[Notation_conventions_for_methods#Callable_methods|Call]] %doc:print('/') | ||
%doc: | %j = %doc:selectCount('/top/a') | ||
Call %doc: | %k = %doc:selectCount('/top/a/text()') | ||
%j = %doc: | print %j ' and ' %k | ||
%k = %doc: | end | ||
</p> | </p> | ||
The example results follow: | The example results follow: | ||
<p class=" | <p class="output"><top> | ||
<a>a1</a> | <a>a1</a> | ||
<a>a2</a> | <a>a2</a> | ||
Line 48: | Line 46: | ||
</top> | </top> | ||
3 and 3 | 3 and 3 | ||
</p> | </p></li> | ||
<li>The following | |||
statements count all the nodes | <li>The following statements count all the nodes and all the attributes in the document, respectively. | ||
and all the attributes in the document, respectively. | <p class="code">print 'Count of non-attribute nodes:' and %doc:countSelected('//node()') | ||
<p class="code"> | print 'Count of attribute nodes:' and %doc:countSelected('//@*') | ||
</p></li> | |||
</p> | </ol> | ||
</ | |||
==Request- | ==Request-cancellation errors== | ||
This list is not exhaustive: it does <i>not</i> include all the errors that are request cancelling. | |||
<ul> | <ul> | ||
<li>< | <li>The <var class="term">xpath</var> expression is invalid. | ||
<li>Insufficient free space exists in CCATEMP. | <li>Insufficient free space exists in CCATEMP. | ||
</ul> | </ul> | ||
==See also== | ==See also== | ||
<ul> | |||
<li><var>[[Count_(XmlNodelist_function)|Count]]</var> counts the number of nodes on an <var>XmlNodelist</var>.</li> | |||
<li>For more information about using XPath expressions, see [[XPath]].</li> | |||
<li>For more information about using XPath expressions, see [[XPath]]. | |||
</ul> | </ul> | ||
{{Template:XmlDoc/XmlNode:SelectCount footer}} |
Latest revision as of 17:47, 18 February 2015
Number of selected nodes (XmlDoc and XmlNode classes)
SelectCount counts the number of nodes selected by an XPath expression.
Syntax
%number = nr:SelectCount( xpath) Throws XPathError
Syntax terms
%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. |
Usage notes
- If the result of the argument XPath expression (xpath) is empty, numeric zero is returned.
Examples
- 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('//@*')
Request-cancellation errors
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.
See also
- Count counts the number of nodes on an XmlNodelist.
- For more information about using XPath expressions, see XPath.