Next / Previous / Contents / TCC Help System / NM Tech homepage

4.5. XPath operators

Here are the operators used in XPath expressions. In the table below, e stands for any XPath expression.

e1+e2If e1 and e2 are numbers, their sum.
e1-e2e1 minus e2.
e1*e2The product of e1 and e2.
e1 div e2If e1 and e2 are numbers, their quotient as a floating-point value.
e1 mod e2The floating-point remainder of e1 divided by e2.
e1 = e2Tests to see if e1 equals e2.
e1 &lt; e2Tests to see if e1 is less than e2. You can't say e1 < e2 inside an attribute: the less-than sign must be escaped as "&lt;".
e1 &lt;= e2Tests to see if e1 is less than or equal to e2.
e1 &gt; e2Tests for greater-than.
e1 &gt;= e2Tests for greater or equal.
e1 != e2Tests for inequality.
e1 and e2True if both e1 and e2 are true. If e1 is false, e2 is not evaluated.
e1 or e2True if either e1 or e2 is true. If e1 is true, e2 is not evaluated.
/e Evaluate e starting at the document node. For example, "/barge" selects the <barge> element that is the child of the document node.
e1/e2The / operator separates levels in a tree. For example, "/barge/load" selects all <load> children of the <barge> element child of the document node.
//e Abbreviation for descendant-or-self::e.
./e Abbreviation for self::e.
../eAbbreviation for parent::e.
@eAbbreviation for attribute::e.
e1|e2Selects the union of nodes that match e1 and those that match e2.
*A wild-card operator; matches all nodes of the proper type for the context. For example, "*" selects all child elements of the context node, and "feet/@*" selects all attributes of the context node's <feet> children.

Square brackets enclose a predicate, which specifies an expression e2 that selects nodes from a larger set e1.For example, in the XPath expression "para[@class='note']", the para selects all <para> children of the context node, and then the predicate selects only the children that have an attribute class="note". Another example: "item[1]" would select the first <item> child of the context node.

$e The dollar sign indicates that the following name is a variable name. For example, in an XSLT script, if variable n is set to 357, <xsl:value-of select="$n"/> is expanded to the string "357".

Here is a table showing the precedence of the XPath operators, from highest to lowest: